Systems and Methods for Communicating Using Nested Low Density Parity Check Codes

ABSTRACT

Systems and methods in accordance with various embodiments of the invention enable communicating using nested Low Density Parity Check (LDPC) codes. A nested LDPC code is an LDPC code having a full blocklength, where shorter blocklengths of the nested LDPC code can be utilized as shorter blocklength LDPC codes. In certain embodiments, a transmitter utilizes a nested LDPC code to communicate via a point-to-point connection. In several embodiments, multiple transmitters utilize nested LDPC codes to communicate simultaneously via a Random Access Channel. One embodiment includes a transmitter capable of encoding a message as symbols using a nested LDPC code until a feedback message indicating an end of epoch message is received. A receiver can determine whether a decoding rule is satisfied at predetermined decode times and transmit an end of epoch message when the decoder can decode a message based upon the nested LDPC code.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention claims priority to U.S. Provisional Patent Application Ser. No. 62/959,678 entitled “Finite-Blocklength and Error Exponent Analyses for LDPC Codes in Point-to-Point and Multiple Access Communication” to Michelle Effros and Yuxin Liu, filed Jan. 10, 2020, the disclosures of which is herein incorporated by reference in its entirety.

STATEMENT OF FEDERALLY SPONSORED RESEARCH

This invention was made with government support under Grant No. CCF1817241 awarded by the National Science Foundation. The government has certain rights in the invention.

FIELD OF THE INVENTION

The present invention generally relates to communication systems and more specifically to communication systems that enable transmission by one or more transmitters using nested Low Density Parity Check codes.

BACKGROUND

Random access techniques have a pivotal role in modern communication systems, as the set of transmitters may be unknown or time-varying in many applications like Internet of Things (IoT) and sensor networks. In addition, network information theory, which aims to establish the fundamental limits of information flow and corresponding coding schemes in networks, has been attracting increasing interest in the past decades. However, the majority of network information theory studies assume the set of transmitters is fixed and known.

Most widely adopted random access techniques focus on collision avoidance or orthogonalization, which facilitate many users to share the network medium without interference. Slotted-ALOHA (S-ALOHA) introduces discrete time slots to coordinate the start of transmission. A transmission is acknowledged to be successful if only one transmitter is active for that slot; otherwise a collision is declared. Packets that collide are transmitted again after a random delay to avoid repeated collision. Under a set of assumptions, S-ALOHA is shown to achieve 36.8% of the single-transmitter capacity. Past improvements on S-ALOHA include adaptive S-ALOHA, which addresses the instability issue of S-ALOHA, and fast adaptive S-ALOHA, which seeks to accelerate the algorithm and decrease the access delay. Orthogonalization methods partition available resources, such as time and frequency, and allocate a fixed fraction to each user. Typical orthogonalization protocols include time-division multiple access (TDMA), frequency-division multiple access (FDMA), and code-division multiple access (CDMA). The cost associated with simplifying coding using orthogonalization protocols is significant, as the best sum-rate (throughput) achievable is equal to the single-transmitter capacity of the channel, which could be considerably smaller than the maximum multi-transmitter sum-rate of the channel.

SUMMARY OF THE INVENTION

Systems and methods in accordance with various embodiments of the invention enable communicating using nested Low Density Parity Check (LDPC) codes. A nested LDPC code is an LDPC code having a full blocklength, where shorter blocklengths of the nested LDPC code can be utilized as shorter blocklength LDPC codes. In effect, the shorter blocklength LDPC codes are nested within the LDPC code having the full blocklength.

In certain embodiments, a transmitter utilizes a nested LDPC code to communicate via a point-to-point connection. In various embodiments, the nested LDPC code acts as a rateless code and the transmitter transmits until a feedback message is provided by a receiver indicating that the transmitted message has been decoded. In several embodiments, multiple transmitters utilize nested LDPC codes to communicate simultaneously via a Random Access Channel (RACs), where none of the transmitters nor the receiver know which and how many transmitters are active. In several embodiments, the transmitters can utilize the same nested LDPC code. In a number of embodiments, different transmitters can utilize different nested LDPC codes.

One embodiment of the communication system includes at least one transmitter, where each transmitter comprises an encoder configured to: receive a start of epoch message; encode message data as symbols using a rateless code determined using a nested Low Density Parity Check (LDPC) code by mapping a codeword to a symbol; and receive feedback messages at a predetermined set of potential decoding times. In addition, the transmitter is configured to transmit symbols until a received feedback message is an end of epoch message. The communication system also includes a receiver comprising a decoder, where the decoder is configured to: cause a broadcast transmitter to transmit at least one start of epoch message; receive observed symbols; at each of a predetermined set of decode times, determine whether a decoding rule is satisfied; and when the decoding rule is satisfied decode at least one message based upon the received observed symbols based upon the nested LDPC code, and cause the broadcast transmitter to transmit an end of epoch message.

In a further embodiment, the nested LDPC code is an LDPC code having a full blocklength that corresponds to a longest decode time from the set of predetermined decode times; the nested LDPC code is further characterized in that at least one shorter blocklength of the LDPC code having the full blocklength forms at least one shorter blocklength LDPC code; and each of the at least one shorter blocklength LDPC codes corresponds to a decode time from the set of predetermined decode times that is shorter than the longest decode time from the set of predetermined decode times.

In another embodiment, the at least one shorter blocklength LDPC code comprises a first shorter blocklength LDPC code and a second shorter blocklength LDPC code. The first shorter blocklength LDPC code includes a first set of variable nodes, and a first set of check nodes. The second shorter blocklength LDPC code includes: a second set of variable nodes including the first set of variable nodes and an incremental set of variable nodes; and a second set of check nodes including the first set of check nodes and an incremental set of check nodes.

In a still further embodiment, the first set of check nodes are connected to one or more variable nodes from the first set of variable nodes, and the incremental set of check nodes are connected to one or more variable nodes from the second set of variable nodes.

In still another embodiment, the ratio of the first set of variable nodes to the first set of check nodes is different to the ratio of the second set of variable nodes to the second set of check nodes.

In a yet further embodiment, the determination of whether a decoding rule is satisfied is based upon the received observed symbols.

In yet another embodiment, the at least one transmitter is configured to select a specific nested LDPC code based upon the start of epoch message.

In a further embodiment again, multiple transmitters in the plurality of transmitters are configured to select the same nested LDPC code to use in the encoding of message data as symbols using a rateless code.

In another embodiment again, at least two of the plurality of transmitters are configured to select different nested LDPC codes to use in the encoding of message data as symbols using a rateless code.

In a further additional embodiment, at least two of the different nested LDPC codes have different code rates.

A transmitter in accordance with another additional embodiment includes: a receiver configured to receive a start of epoch message; an encoder configured to encode message data as symbols using a rateless code determined using a nested Low Density Parity Check (LDPC) code by mapping a codeword to a symbol; and a modulator configured to transmit symbols encoded by the encoder. In addition, the receiver is further configured to receive an end of epoch message at one of a predetermined set of times, and the modulator is configured to transmit symbols encoded by the encoder until an end of epoch message is received by the receiver.

In a still yet further embodiment, the nested LDPC code is an LDPC code having a full blocklength that corresponds to a longest decode time from the set of predetermined decode times; the nested LDPC code is further characterized in that at least one shorter blocklength of the LDPC code having the full blocklength forms at least one shorter blocklength LDPC code; and each of the at least one shorter blocklength LDPC code corresponds to a decode time from the set of predetermined decode times that is shorter than the longest decode time from the set of predetermined decode times.

In still yet another embodiment, the at least one shorter blocklength LDPC code comprises a first shorter blocklength LDPC code and a second shorter blocklength LDPC code. The first shorter blocklength LDPC code includes a first set of variable nodes, and a first set of check nodes. The second shorter blocklength LDPC code includes: a second set of variable nodes including the first set of variable nodes and an incremental set of variable nodes; and a second set of check nodes including the first set of check nodes and an incremental set of check nodes.

In a still further embodiment again, the first set of check nodes are connected to one or more variable nodes from the first set of variable nodes, and the incremental set of check nodes are connected to one or more variable nodes from the second set of variable nodes.

In still another embodiment again, the ratio of the first set of variable nodes to the first set of check nodes is different to the ratio of the second set of variable nodes to the second set of check nodes.

A receiver in accordance with a still further additional embodiment includes: a transmitter configured to transmit at least one start of epoch message, and a receiver configured to receive observed symbols. In addition, the decoder is further configured to: determine whether a decoding rule is satisfied at each of a predetermined set of decode times; and when the decoding rule is satisfied, decode at least one message based upon the received observed symbols based upon a rateless code determined using a nested LDPC code, and cause the transmitter to transmit an end of epoch message.

In still another additional embodiment, the nested LDPC code is an LDPC code having a full blocklength that corresponds to a longest decode time from the set of predetermined decode times; the nested LDPC code is further characterized in that at least one shorter blocklength of the LDPC code having the full blocklength forms at least one shorter blocklength LDPC code; and each of the at least one shorter blocklength LDPC code corresponds to a decode time from the set of predetermined decode times that is shorter than the longest decode time from the set of predetermined decode times.

In a yet further embodiment again, the at least one shorter blocklength LDPC code comprises a first shorter blocklength LDPC code and a second shorter blocklength LDPC code. The first shorter blocklength LDPC code comprises a first set of variable nodes, and a first set of check nodes. The second shorter blocklength LDPC code includes: a second set of variable nodes including the first set of variable nodes and an incremental set of variable nodes; and a second set of check nodes including the first set of check nodes, and an incremental set of check nodes.

In yet another embodiment again, the first set of check nodes are connected to one or more variable nodes from the first set of variable nodes; and the incremental set of check nodes are connected to one or more variable nodes from the second set of variable nodes.

In a yet further additional embodiment, the ratio of the first set of variable nodes to the first set of check nodes is different to the ratio of the second set of variable nodes to the second set of check nodes.

In yet another additional embodiment, the decoder is selected from the group consisting of a maximum likelihood decoder and a belief propagation decoder.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 conceptually illustrates a receiver configured to control transmission by transmitters on a Random Access Channel (RAC) during epochs defined by the receiver in accordance with an embodiment of the invention.

FIG. 2 is a flow chart illustrating a process for transmitting data using a rateless code on a RAC during epochs defined by a receiver in accordance with an embodiment of the invention.

FIG. 3 is a flow chart illustrating a process for detecting whether one or more transmitters are active and/or decoding data transmitted by the one or more active transmitters via a RAC in accordance with an embodiment of the invention.

FIG. 4 includes a table (Table 1) of notation utilized to describe systems and methods in accordance with various embodiments of the invention.

FIG. 5 conceptually illustrates a Low Density Parity Check (LDPC) encoder in accordance with an embodiment of the invention.

FIG. 6 conceptually illustrates the underlying design a random ensemble of Random Access LDPC (RA-LDPC) codes that can be utilized with two transmitters in accordance with an embodiment of the invention.

FIG. 7 conceptually illustrates a quantizer in accordance with an embodiment of the invention.

DETAILED DESCRIPTION

Turning now to the drawings, systems and methods for communicating using nested Low Density Parity Check (LDPC) codes in accordance with various embodiments of the invention are illustrated. A nested LDPC code is an LDPC code having a full blocklength, where shorter blocklengths of the nested LDPC code can be utilized as shorter blocklength LDPC codes. In effect, the shorter blocklength LDPC codes are nested within the LDPC code having the full blocklength. In many embodiments, the shorter blocklength LDPC codes have higher rates than the rate of the LDPC code having the full blocklength. As a result, nested LDPC codes can be utilized as rateless codes and/or in systems that support adaptive coding and modulation. In many embodiments, a nested LDPC code can be defined programmatically. Accordingly, codewords of increasingly larger blocklength can be generated by the transmitter(s) and receiver as required to enable decoding of one or more transmitted messages at a decode time that can also be programmatically determined with each increase in the full blocklength of the nested LDPC code.

Nested LDPC codes can be contrasted with the technique of puncturing a low rate LDPC code to achieve higher code rates. Puncturing typically relies upon a single blocklength LDPC code and only transmitting certain symbols corresponding to a fraction of the codeword symbols of the LDPC code to achieve a higher code rate. Puncturing essentially treats the non-transmitted symbols as erasures and relies upon the low rate LDPC code that was punctured to recover the user data. By contrast, each shorter blocklength LDPC code nested within a nested LDPC code represents a distinct LDPC code that is utilized by a decoder to recover the transmitted user data. When a nested LDPC code is utilized, the decoder does not decode the user data utilizing a lower rate LDPC code having a longer blocklength than the blocklength of the transmitted symbols.

In certain embodiments, a transmitter utilizes a nested LDPC code to communicate via a point-to-point connection. In various embodiments, the nested LDPC code acts as a rateless code and the transmitter transmits until a feedback message is provided by a receiver indicating that the transmitted message has been decoded. In a number of embodiments, the nested LDPC code is utilized to achieve adaptive coding and modulation. The transmitter can transmit an agreed upon blocklength of the nested LDPC code (potentially encoding user data using a shorter blocklength LDPC code nested within the nested LDPC code) to achieve a desired code rate.

In several embodiments, multiple transmitters utilize nested LDPC codes to communicate via Discrete Memoryless Random Access Channels (DM-RACs). In a number of embodiments, the DM-RAC is considered as a family of discrete memoryless multiple access channels (DM-MACs) depending on the transmitter activities. However, none of the transmitters nor the receiver know which and how many transmitters are active. In several embodiments, the transmitters can utilize the same nested LDPC code. In a number of embodiments, different transmitters can utilize different nested LDPC codes. A benefit of using different nested LDPC codes is that a receiver can utilize knowledge of the different nested LDPC codes utilized by different transmitters to determine which transmitter transmitted a specific message.

In a number of embodiments, a transmitter can select between different nested LDPC codes having different code rates. In the context of a nested LDPC code, a different code rate can be determined for each shorter blocklength LDPC code nested within the nested LDPC code. The code rate need not be the same for all shorter blocklength LDPC codes nested within a particular nested LDPC code. For example, the LDPC code having the full blocklength can be rate 1/2 and a shorter blocklength LDPC code nested within the LDPC code having the full blocklength can have a code rate greater than ½ (e.g., ⅗). By selecting between nested LDPC codes having different code rates at a given blocklength, a transmitter can determine its code rate during a particular epoch. In the context of transmitters communicating via a RAC, transmitters can balance and/or prioritize utilization of the RAC through their choice of code rate. In many embodiments, a transmitter (such as a transmitter utilizing a RAC) can select between different LDPC codes to adjust code rate from one time epoch to the next.

Systems and methods in accordance with many embodiments of the invention utilize nested LDPC codes designed using K≥1 stages, where the codewords for each blocklength n_(i), i∈[K] are nested in the codewords for each blocklength distinct n_(j), j∈[K], provided that n_(j)≥n_(i). As discussed above, nested LDPC codes can be utilized as rateless codes. Rateless codes are codes that enable various decoding times. Traditionally, one or more transmitters in a rateless code listen for feedback (often a single bit) from the receiver that indicates whether to continue or stop their transmissions at every time step. Feedback can dramatically improve the maximum achievable rate in the finite-blocklength regime. Instead of allowing arbitrary decoding times and thus requiring feedback at every time step, a limited set of decoding times can be employed. In a number of embodiments, the transmissions happen in epochs and the set of decoding times {n₁, n₂ . . . , n_(K)} is finite and predetermined, where n_(k), k∈{1, . . . , K} refers to the decoding time. The decoding times can be determined based upon factors including (but not limited to) different channel conditions and/or different code rates. In the context of communication via a RAC, the decoding times can correspond to different times at which a decoder believes there are k active transmitters and it is able to decode. In a number of embodiments, a decoder receiving transmitted symbols via a RAC first estimates the number of active transmitters and then performs ML decoding at some pre-determined time n_(k) if the decoder believes the number of active transmitters is k. In addition, the decoder examines the channel output at n₀ to detect whether any transmitter is active in the current epoch. This is particularly useful as n₀ can be chosen to be very small compared to other decoding times n_(k), k∈[K], allowing a new epoch to begin quickly. In some embodiments, n_(k) refers to the decoding time when a particular

_(k)⊆{1, . . . , K} of transmitters is active. In other embodiments, n_(k) refers to the stopping time when any of some collection of transmitter subsets (

_(k)=(

_(k,1), . . . ,

_(k,f(k)))) is active, here f(k) is the number of subsets in

_(k). In many embodiments, the stopping times are ordered so that n₁≤n₂≤ . . . ≤n_(k).

In several embodiments, a communication system capable of communicating via a RAC can achieve additional efficiency gains by detecting early within a time epoch that an unusually large number of transmitters have commenced simultaneously transmitting. Instead of requiring all transmitters to continue to transmit with a long blocklength, the receiver can transmit a feedback message ending the epoch and indicating to one or more of the transmitters that they should wait a period of time before attempting to retransmit. In several embodiments, the period of time that a transmitter waits before attempting to retry transmitting its message can be a number of time epochs specified by the transmitter. In certain embodiments, the period of time can be a random number of time epochs determined by the transmitter. In a number of embodiments, a receiver can terminate an epoch without decoding transmitted messages by utilizing an LDPC code in which n_(k) is comparatively small for some large value number of transmitters, allowing a decoder to abort transmission and declare an outage rather than suffer a long period of low per-user transmission rates when the number of active transmitters is unusually high.

While i.i.d. random rateless codes enjoy the property of independence between symbols within and across codewords, making them theoretically simple to analyze, the mutual independence also induces difficulties in practical implementations. In contrast, linear codes, such as LDPC codes, are more structured and thus more realistic to implement. LDPC codes are equipped with sparse parity-check matrices for the purpose of enabling low complexity decoding strategies. LDPC codes are now in widespread use, playing a role in commercial standards like 10 Gb/s Ethernet (IEEE 803.3an), WiFi (IEEE 802.11n), WiMAX (IEEE 802.16e), and the 5G standard. However, LDPC codes are typically not amendable to construction through the processes of concatinating sub-codewords that enable construction of nested random rateless codes. Accordingly, new processes were developed for the construction of the various nested LDPC codes described herein in order to enable their utilization within communication systems including (but not limited to) point-to-point and DM-RAC communication systems. Furthermore, the use of nested LDPC codes (or similar LDPC codes) as described herein should be understood as in no way limited to memoryless channel or symmetrical channels, but can be utilized in any of a variety of different communication applications including any of a variety of different communication channels.

Finite-blocklength achievability bounds can be developed, using both error-exponent analysis and dispersion-style analysis, for LDPC codes for the RAC, in which neither the encoders nor the decoder know in advance which or even how many of the total

transmitters are active. As noted above, the nested LDPC codes utilized in accordance with various embodiments of the invention can be designed in

stages, corresponding to each of the

potential decoding times n_(k), k∈[

]. The achievability bounds indicate that the nested LDPC codes described herein are not only capacity-achieving (first-order optimal), but also achieve second-order performance that is comparable to the best-prior results for the corresponding MAC.

For the dispersion-style approach, a third-order achievability result can be derived for the proposed nested LDPC codes. The result demonstrates that the performance of the proposed nested LDPC codes achieve the first-order optimal performance (capacity) and match the second-order (dispersion) performance of the best-performing codes used in the Multiple Access Channel (MAC), where the set of active transmitters is known to all users and no feedback is employed.

Systems and methods that communicate using nested LDPC codes in accordance with various embodiments of the invention are discussed further below.

Systems and Methods for Communicating Using Vested LDPC Codes

Communication systems in accordance with various embodiments of the invention can impose restrictions on an active transmitter. Specifically, the receiver can use feedback messages to define epochs. During each epoch, a transmitter can decide whether or not it wishes to be active. In some embodiments, an active transmitter transmits symbols for the duration of the epoch, where each symbol is generated based upon a set of message data bits using a nested LDPC code. A receiver configured to control the transmission of at least one transmitter during epochs defined by the receiver in accordance with an embodiment of the invention is conceptually illustrated in FIG. 1.

The communication system 100 includes at least one transmitter, and each transmitter includes an encoder 102. Each transmitter that has message data to transmit can choose to become active during any given epoch. Where only one transmitter is present, the communication system is a point-to-point communication system. When multiple transmitters are present, the communication system can act as a RAC communication system in which multiple transmitters can simultaneously transmit on a shared communication channel. When a transmitter is active, the transmitter can provide a sequence of message bits to a rateless encoder 102, which generates a sequence of output symbols based upon a nested LDPC code; output symbols are then transmitted over a channel 104. When multiple transmitters are active, the active transmitters simultaneously transmit over the RAC channel 104 to a receiver. As discussed above, the use of nested LDPC codes as rateless codes enables the receiver to continue to receive symbols (i.e., extend the duration of a particular epoch) until the receiver's decoder 106 has observed enough symbols to decode the transmitted messages with high probability or to trigger any other stopping rule. In many embodiments, the decoder employs a decoding rule that is applied at a predetermined set of potential decoding times. In several embodiments, each potential decoding time in the set of potential decoding times corresponds to a number of symbols determined to be required for the decoder to be able to decode messages from a specific number of transmitters. In certain embodiments, application of the decoding rule essentially involves attempting to decode a number of messages at each potential decoding time, which indirectly provides an estimate of the number of transmitters that are active during an epoch. Based upon the decoding rule, the decoder tries decoding at each subsequent decoding time in the set of potential decoding times. It chooses the first decoding time from that set for which it finds a collection of messages consistent with its received symbols and with the activity set or sets corresponding to that decoding time. As noted above, the receiver can also utilize a criterion to detect that an unusually large number of transmitters are transmitting. In which case, the receiver can send a feedback message ending the epoch and directing that transmitters to wait a period of time (e.g., a random number of epochs) before attempting to retry transmitting a message.

As noted above, the receiver need not continuously transmit its decoding state to the transmitters. In a number of embodiments, the transmitters and the receiver establish a set of potential decoding times and the receiver sends a positive or negative feedback message at each potential decoding time indicating whether the receiver requires more symbols to be able to decode the messages with a high probability (here called a negative feedback message) or whether the receiver has received enough symbols and has decided to decode the messages and start a new epoch (i.e., a positive feedback message).

In many embodiments, the set of potential decoding times is determined based upon channel conditions. As the channel deteriorates, the receiver can adapt and choose a set of potential decoding times where the number of symbols required to be received during an epoch for a given estimated number of transmitters increases. When the channel improves the receiver can adapt to a set of potential decoding times in which the number of symbols required to be received for a given estimated number of transmitters decreases. In a number of embodiments, the receiver adapts the set of potential decoding times utilized during a particular epoch based upon a measurement of channel conditions including (but not limited to) fading and channel noise. In several embodiments, the receiver periodically signals a guard interval in which transmitters are required to cease activity. During this guard interval, the receiver can measure channel noise and determine an appropriate set of potential decoding times. In some embodiments, the receiver periodically signals a test interval in which active transmitters are required to send pilot signals. During these test intervals, the receiver can estimate fading conditions and determine an appropriate set of potential decoding times. The receiver can then broadcast the set of potential decoding times and/or an identifier of the set of potential decoding times to the transmitters and can initiate the next epoch via a transmission of a positive feedback message. The transmitters can then monitor the feedback channel for positive and negative feedback messages based upon the set of potential decoding times communicated by the receiver. In a number of embodiments, instead of and/or in addition to utilizing alternative decoding times in response to changes in channel conditions, transmitters can also select between different nested LDPC codes having different code rates at a given decoding time. Although specific methods are described for adapting between different sets of potential decoding times, it can readily be appreciated that any of a variety of techniques can be utilized for determining an appropriate set of decode times for a given set of channel conditions and coordinating the adoption of such a set of decode times by the receiver and transmitters in accordance with various embodiments of the invention.

While many advantages can be obtained through the use of nested LDPC codes in accordance with embodiments of the invention, communication systems in accordance with a number of embodiments of the invention communicate via a RAC using punctured LDPC codes. When punctured LDPC codes are utilized, a single blocklength LDPC code can be utilized by each transmitter in which codeword symbols are transmitted until a decoder is capable of decoding the one or more simultaneously transmitted messages. The decoding process can assume that all transmitted messages have the blocklength of the LDPC code(s) and the codeword symbols that have not yet been transmitted (i.e., the punctures) can simply be treated as erasures. Accordingly, utilizing a punctured LDPC code does not result in a reduction in the computational complexity required to decode the transmitted symbols. By contrast, the decoding process of a nested LDPC code can take advantage of the fact that each shorter blocklength code nested within the LDPC code of full blocklength has a reduced number of check nodes. While much of the discussion that follows focuses on the use of nested LDPC codes, because of the benefits that nested LDPC codes have in many applications, it should be appreciated that punctured LDPC codes and/or other varieties of LDPC codes can be utilized in communication systems in which the blocklengths of individual messages are unknown prior to commencement of transmission as appropriate to the requirements of specific applications in accordance with various embodiments of the invention.

In a number of embodiments, multiple transmitters use the same encoder 102 and the receiver broadcasts an indication of a particular nested LDPC code to use in a given epoch. In several embodiments, multiple transmitters are able to use different nested LDPC codes. Using different nested LDPC codes can enable the decoder to identify the transmitter that transmitted a specific message decoded by the decoder 106. Using different nested LDPC codes can also enable the encoders to transmit different numbers of messages and attain different rates. When transmitters encode using different encoders, the receiver can transmit information indicating the specific nested LDPC code to be used by a particular encoder at the start of a particular epoch. The receiver can then utilize knowledge of the different nested LDPC codes that were potentially utilized in the decoding of the transmitted messages from the observed symbols.

Although specific communication systems are described above with reference to FIG. 1, any of a variety of transmitters and receivers that employ LDPC codes to transmit data over a channels including (but not limited to) the RAC channel can be utilized as appropriate to the requirements of a given application in accordance with various embodiments of the invention. Indeed, communication systems in accordance with various embodiments of the invention are in no way limited to any particular communication medium, spectral band, and/or modulation or demodulation scheme. Symbols encoded in accordance with various embodiments of the invention can be transmitted using any number of different modulation schemes appropriate to the requirements of a given application and/or can employ additional outer codes to correct bit errors in the messages decoded by the receiver. The transmitters and receivers described herein should be understood as being capable of being deployed in any communication system in which an unknown number of transmitters utilize nested LDPC codes and/or a shared channel to communicate with a receiver. A number of specific encoding and decoding processes in accordance with different embodiments of the invention are discussed below.

Processes for Encoding Data

Transmitters in accordance with various embodiments of the invention are configured to wait to transmit data until the start of an epoch and then transmit data throughout the epoch. In many embodiments, the end of the epoch can be agreed upon from one epoch to the next by the transmitter and a receiver. In several embodiments, the transmitter determines the end of the epoch by listening periodically for a positive feedback message that indicates the end of the epoch. As discussed above, the codebook selected for the rateless code can be coordinated with the receiver. Therefore, in many embodiments the transmitter also monitors a feedback channel for a transmission from a receiver containing a codebook and/or an identifier for a codebook to be utilized within a specified (e.g., the next) epoch.

A process for transmitting data using a nested LDPC code on a RAC during epochs defined by a receiver in accordance with an embodiment of the invention is illustrated in FIG. 2. The process 200 involves the transmitter determining 202 whether or not to become active during the next epoch. When the transmitter wishes to transmit, the transmitter commences monitoring 204 a feedback channel to determine 206 whether the receiver has broadcast a positive feedback message indicating the start time of the next epoch. As noted above, in many embodiments of the invention the receiver is limited to only transmitting feedback messages at a set of times (e.g., the set of potential decoding times) that are known to the transmitter. Accordingly, the transmitter may only monitor the feedback channel at those specific set of times until a positive feedback message is received.

The transmitter selects 208 a block of message data to transmit and a codebook to use to encode the message data using a rateless code. In many embodiments encoders are employed within transmitters to encode the data using nested LDPC codes. As noted above, other embodiments may rely on other variations of LDPC codes. In many embodiments, the codebook utilized is a codebook indicated by a receiver and constitutes a common randomness between the transmitter and the receiver. In other embodiments, there is only one codebook, and that same codebook is always used to encode the message data using a rateless code. In certain embodiments, the codebook is the same for every transmitter. In many embodiments, the codebook is specific to the transmitter. In several embodiments, the transmitter can choose between a predetermined set of nested LDPC codes and the receiver determines the specific nested LDPC codes utilized by the transmitter(s) as part of the decoding process.

In order to encode the message data, the transmitter also resets a clock n that is used to count the number of transmitted symbols and a counter t that is used to index into the set of potential decoding times. As noted above, in some embodiments, the counter t can be considered to correspond to a number of active transmitters. In many embodiments, counter t can correspond to factors including (but not limited to) different channel conditions. When a receiver determines that t equals the estimated number of active transmitters and n equals the time n_(t) for decoding when t transmitters are active, the receiver will transmit a positive feedback message indicating the end of the epoch. In other embodiments, the counter t can be considered an index identifying a specific subset of distinct encoders. When a receiver determines that t specifies the estimated set of active transmitters and n equals the time n_(t) for decoding when subset t of the transmitters is active, the receiver will transmit a positive feedback message indicating the end of the epoch.

The transmitter transmits 210 the symbols generated by the rateless code based upon the block of message bits and with each transmitted symbols checks 212 to see whether the number of transmitted symbols corresponds to one of the potential decoding times in the set of potential decoding times. If not, then the transmitter increments 214 the clock n=n+1. When the number of transmitted symbols corresponds to a potential decoding time (n_(t)) from the set of potential decoding times, the transmitter listens 216 for a feedback message from the receiver. When a determination 218 is made that the feedback message is a negative feedback message, then the transmitter increments the clock n=n+1 and the counter t=t+1. The transmitter continues to transmit symbols generated by the rateless code (e.g., the nested LDPC code) until a determination 218 is made that a positive feedback message is received. At that point, the epoch is over and the transmitter determines 222 whether additional message data is available for transmission and whether 202 the transmitter wishes to be active during the next epoch. When no more message data is available for transmission, the process can complete. The process may begin again in the future if more messages become available for transmission.

Although specific processes for transmitting data are described above with reference to FIG. 2, any of a variety of processes can be utilized to transmit data as appropriate to the requirements of specific applications in accordance with various embodiments of the invention. While various embodiments of the invention are not limited to transmission via a RAC and can include transmission via point-to-point channels, communication via the RAC is a particularly interesting application having the potential to significantly expand the capabilities of conventional communication systems by allowing receivers to receive data from an unknown number of transmitters that are simultaneously transmitting on the same communication channel. Accordingly, processes for receiving and decoding data transmitted by an unknown number of transmitters via a RAC in accordance with a number of embodiments of the invention are discussed further below.

Processes for Decoding Data Transmitted by an Unknown Number of Transmitter Via a RAC

Receivers in accordance with various embodiments of the invention are configured to receive data transmitted by an unknown number of transmitters on the same channel at the same time and encoded by rateless codes implemented using LDPC codes such as (but not limited to) nested LDPC codes. In some embodiments, these rateless codes are based upon a common codebook shared by one or more transmitters and the receiver. In other embodiments, these rateless codes are fixed. In order to be effective, the receiver can permit at least one transmitter to transmit symbols for a period of time that is sufficiently long to enable decoding of the transmitted message(s) with high probability. However, permitting the at least one transmitter to transmit more symbols beyond this required blocklength decreases the rate of the transmitters below capacity of the channel. Accordingly, receivers in accordance with many embodiments of the invention employ decoding rules to determine when a sufficient number of symbols are received to decode the transmitted message(s) with high probability. In a number of embodiments, a separate potential decoding time is determined for each possible number of active transmitters, and the receiver applies a decoding rule at each of the potential decoding times to determine whether the transmitted messages can be decoded. In this way, the decoding rule effectively constitutes an attempt to estimate the number of active transmitters. In several embodiments, the decoding times can also correspond to different channel conditions. Therefore, the decoding rule can constitute an attempt to estimate one or more of a variety of characteristics of the communication system including (but not limited to) the number of active transmitters and/or the characteristics of the communication channel.

The implementation of receivers in accordance with various embodiments of the invention can be influenced by the manner in which the receiver manages the case in which no transmitters are transmitting. The sooner the receiver ends an epoch in which no transmitters are transmitting, the higher the rate achieved across the channel. In a number of embodiments, receivers employ a separate process to determine whether transmitters are active and the receiver simply commences decoding when the receiver knows that transmitters are active. In other embodiments, the receiver incorporates a decoding rule that determines whether any transmitters are active prior to the first potential decoding time period.

A process for detecting whether one or more transmitters are active and/or decoding data transmitted by the one or more active transmitters via a RAC in accordance with an embodiment of the invention is illustrated in FIG. 3. The process 300 commences when the receiver broadcasts 302 a positive feedback message to the transmitters indicating the commencement of an epoch. The positive feedback message can be accompanied by a message indicating one or more codebooks that should be utilized by one, some, or all of the transmitters to encode message data using rateless codes during the epoch.

As part of a process of receiving and decoding symbols, the receiver initializes a clock n that is used to count the number of received symbols and a counter t that is used to index into the set of potential decoding times (n_(t)). As noted above, in some embodiments, the counter t can be considered to correspond to a number of active transmitters. When a receiver determines that t equals the estimated number of active transmitters and n=n_(t), the receiver will transmit a positive feedback message indicating the end of the epoch. In other embodiments, the counter t can be considered an index identifying a specific subset of distinct encoders. When a receiver determines that t specifies the estimated set of active transmitters and n equals the time n_(t) for decoding when subset t of the encoders are active, the receiver will transmit a positive feedback message indicating the end of the epoch.

After the receiver commences receiving observed symbols, the receiver determines 302 whether the number of received symbols corresponds to the potential decoding time (n_(t)) indicated by the counter (t). When the clock indicates that the current time is not one of the potential decoding times, the receiver increments 308 the clock n=n+1 and continues to receive observed symbols. When the clock corresponds to one of the potential decoding times (n_(t)) from the set of potential decoding times indicated by the counter (t), the transmitter determines 310 whether a decoding rule is satisfied. In many embodiments, the first potential decoding time (n₀) corresponds to a period of time during which the receiver can determine that there are no active transmitters. In some embodiments, the first decoding time no corresponds to a period of time during which the receiver can determine that current conditions fall into some preset collection of types of conditions unfavorable to successful decoding, and for which the code is design to end the epoch and declare an outage rather than trying to decode. As is discussed further below, a variety of different decoding rules can be applied at (n₀) to determine that there are no active transmitters and at subsequent potential decoding times to estimate the number of active transmitters. In many embodiments, the decoding rule that is utilized to estimate the number of active transmitters during the epoch can be a simple threshold rule that is applied at each potential decoding time after a determination is made that one or more transmitters are active. As is discussed further below, the specific decoding rule applied in a given receiver in accordance with an embodiment of the invention is largely dependent upon the requirements of a given application.

When the decoding rule is not satisfied, the receiver concludes that the subset of transmitters indexed by t is not the estimated active transmitter subset that is currently active and sends a negative feedback message to the transmitters. The receiver also increments the counter t=t+1 and the clock n=n+1 and continues to receive observed symbols. When the decoding rule is satisfied, the receiver decodes 314 the messages transmitted by the estimated active transmitter set t and broadcasts a positive feedback message to the transmitters. In some embodiments, the receiver can determine 316 whether it is prepared to initiate another epoch. In the event that the receiver wishes to commence another epoch, the receiver selects 318 one or more codebooks to be utilized by the transmitters during the next epoch and broadcasts 302 a positive feedback message to the transmitters indicating the commencement of the next epoch and specifying the chosen codebook ID(s). In the event that the receiver completes an epoch and does not want to initiate a new epoch, the process completes. In many embodiments, the receiver transmits a positive feedback message indicating the end of the epoch (so the transmitters can cease transmission) followed by a message indicating that a new epoch has not commenced.

While a number of specific processes are described above for decoding data transmitted by an unknown number of transmitters via a RAC using rateless codes with reference to FIG. 3, any of a variety of processes can be utilized in the decoding of data transmitted by multiple transmitters using rateless codes during epochs having durations determined by a receiver as appropriate to the requirements of specific applications in accordance with various embodiments of the invention. For example, a positive feedback message can indicate both the end of one epoch and the start of another epoch. In many embodiments, the transmitter and receivers commence a new epoch at a fixed time offset from the transmission of a positive feedback message by the receiver. In certain embodiments, the receiver transmits a first positive feedback message to end an epoch and a second message to commence the next epoch. In certain embodiments, the receiver can detect that an unusually large number of transmitters are attempting to transmit and send a feedback message that ends the epoch and that directs one or more of the transmitters to wait a period of time (e.g., a random number of epochs) before attempting to retry transmitting a message. Accordingly, it should be appreciated that receivers in accordance with various embodiments of the invention are not limited to any particular feedback mechanism and/or protocol.

While a variety of communication systems, transmitters, and receivers are described above with reference to FIGS. 1-3, as will be appreciated based upon the discussion below, any of a variety of transmitters and receivers that employ rateless codes similar to the nested LDPC codes described herein can be utilized in accordance with various embodiments of the invention. The discussion that follows presents a variety of approaches that can be utilized to design communication systems and to determine the set of possible decoding times to be utilized by the decoder in decoding the messages from the transmitters in a given application. Furthermore, the threshold that can be applied as a decoding rule in some embodiments is derived. In order to discuss communication systems in accordance with various embodiments of the invention in more detail, it is helpful to define a set of notations that can be helpful in describing the memoryless symmetric random access channel model employed in designing communication systems in accordance with many embodiments of the invention and the resulting communication systems.

Notations

For non-negative integers a and b, let [a]

{1, 2, . . . , a}, and [a:b]

{a, a+1, . . . , b}, where [a:b]=∅ when a>b. Uppercase letters (e.g., X and Y) are employed to denote random variables, lowercase letters to denote their realizations (e.g., x and y), and calligraphic uppercase letters (e.g.,

and

) to indicate their sample spaces. Superscripts (e.g., X^(n)) are utilized to represent vectors and bold fonts (e.g., X, 1 and 0) when the length of the vector is clear in the context. The subscript i in X_(i) and bracket notation X(i) both indicate the ith element of the vector X. The inequality symbols (e.g., > and ≤) operate element-wise when used for comparing vectors (e.g., X^(n)>Y^(n) if X_(i)>Y_(i) for all i∈[n]). Likewise, applying a scalar function ƒ(⋅) to a vector X∈

^(n) gives the vector of function values ƒ(X)

(ƒ(X_(i)), i∈[n]). For a finite set

∈[k], |

| represents the cardinality of

and

{

:

⊆

} denotes the power set of

. Given a scalar a∈

, a vector v∈

^(n), and a set

⊆

^(n), the set a

+v is defined as a

+v

{as +v, s∈

}.

Throughout the discussion that follows, unless otherwise indicated, all logarithms and exponentials are evaluated with base q, where the prime power q specifies the alphabet size of our proposed LDPC code. Standard asymptotic notations O(⋅) and o(⋅) are applied to describe the limiting behavior of functions, writing ƒ(n)=O(g(n)) if there exist constants a and n′ such that |ƒ(n)|≤a|g(n)| for all n>n′ and ƒ(n)=o(g(n)) if

${\lim_{n\rightarrow\infty}{\frac{f(n)}{g(n)}}} = 0.$

For a joint distribution P_(XY) on discrete alphabet

×

and any x∈

and y∈

, information density is denoted by

$\begin{matrix} {{i\left( {x;y} \right)}\overset{\bigtriangleup}{=}{\log{\frac{P_{Y❘X}\left( {y❘x} \right)}{P_{Y}(y)}.}}} & (1) \end{matrix}$

Given a set of alphabets

_(i), i∈[k], a joint distribution P_(V) _(k) _(Y) for some integer k, and ordered set

,

⊆[k] such that

∩

=∅,

and information density and conditional information density can be defined as

$\begin{matrix} {{i\left( {x_{\mathcal{A}};y} \right)}\overset{\bigtriangleup}{=}{\log\frac{P_{Y❘X_{\mathcal{A}}}\left( {y❘x_{\mathcal{A}}} \right)}{P_{Y}(y)}}} & (2) \\ {{{i\left( {x_{\mathcal{A}};{y❘x_{\mathcal{B}}}} \right)}\overset{\bigtriangleup}{=}{\log\frac{P_{{Y❘X_{\mathcal{A}}},X_{\mathcal{B}}}\left( {{y❘x_{\mathcal{A}}},x_{\mathcal{B}}} \right)}{P_{Y❘X_{\mathcal{B}}}\left( {y❘x_{\mathcal{B}}} \right)}}},} & (3) \end{matrix}$

for any

∈

, x_(B)∈

, and y∈

.

The corresponding mutual informations, dispersions, conditional dispersions, third centered moments, conditional third centered moments of the information density (2) and conditional information density (3) are

I(

)

[i(

;Y)]  (4)

I(

|

)

[i(

;Y|

))]  (5)

V(

)

Var[i(

;Y)]  (6)

V(

|

)

Var[i(

;Y|

)]  (7)

V ^(Y)(

)

Var[i(

;Y)|Y]  (8)

V ^(Y)(

|

)

Var[i(

;Y|

)|Y]  (9)

T(

)

[|i(

;Y)−I(

)|³]  (10)

T(

|

)

[|i(

;Y|

)−I(

|

)]|³]  (11)

T ^(Y)(

)

[|i(

;Y)−I(

)|³ |Y]  (12)

T ^(Y)(

|

)

[|i(

;Y|

)−I(

|

)]|³ |Y].  (13)

The (probability density function) PDF and cumulative distribution function (CDF) for standard Gaussian distribution

(0, 1) are denoted by

$\begin{matrix} {{\phi(x)}\overset{\bigtriangleup}{=}{\frac{1}{\sqrt{2\;\pi}}e^{- \frac{x^{2}}{2}}}} & (14) \\ {{{\Phi(x)}\overset{\bigtriangleup}{=}{\frac{1}{\sqrt{2\;\pi}}{\int_{- \infty}^{x}{e^{- \frac{u^{2}}{2}}\ d\; u}}}},} & (15) \end{matrix}$

respectively. The function Q(⋅) denotes the standard Gaussian complementary CDF

$\begin{matrix} {{{{Q(x)}\overset{\bigtriangleup}{=}{{1 - {\Phi(x)}} = {\frac{1}{\sqrt{2\;\pi}}{\int_{x}^{\infty}{e^{- \frac{u^{2}}{2}}\ d\; u}}}}},}\ } & (16) \end{matrix}$

and Q⁻¹(⋅) is the inverse function of Q(⋅).

The generalization of inverse Gaussian complementary CDF Q⁻¹(⋅) to higher dimension is denoted by Q_(inv)(⋅, ⋅). Let Z be a Gaussian random vector in

^(d) with mean zero and covariance matrix K, the set Q_(inv)(K, ϵ) is given by

Q _(inv)(K,ϵ)

{z∈

^(d) :Pr[Z≤z]≥1−ϵ}.  (17)

Given a positive integer n, a prime power q, and a PDF θ=(θ₀, θ₁, . . . , θ_(q-1)) such that nθ_(i)∈

, ∀i∈[0, q−1], the multinomial coefficient. B(n, nθ) is defined as

$\begin{matrix} {{B\left( {n,{n\;\theta}} \right)}\overset{\bigtriangleup}{=}{\frac{n!}{\prod\limits_{i = 0}^{q - 1}\;{\left( {n\;\theta_{i}} \right)!}}.}} & (18) \end{matrix}$

A summary of many of the notations utilized herein is provided in Table 1 shown in FIG. 4.

System Model and Design

When considering the RAC, the maximum number of transmitters K can be assumed finite, i.e., K<□. A K-user DM-MAC can then be denoted by DM-K-MAC. A DM-K-MAC can be defined by

$\left( {{\prod\limits_{i = 1}^{K}\;\mathcal{X}_{i}},P_{Y❘X},\mathcal{Y}} \right)$

where

, i∈[K], and

are the discrete channel input and output alphabets, respectively, and P_(Y|X)=P_(Y|X) ₁ _(, X) ₂ _(, . . . , X) _(K) is the channel transition probability.

A DM-K-MAC is called symmetric if all transmitters share the same input alphabet (

_(i)=

for all i∈[K]) and

P _(Y|X)(y|x)=P _(Y|X)(y|π(x))

for all y∈

, x∈

^(K), and permutations π on [K].

The nth order extension (Π_(i=1) ^(K)

_(i) ^(n),P_(Y) _(n) _(|X) _(n) ,

^(n)) of a memoryless channel (Π_(i=1) ^(K)

_(i),P_(Y|X),

) requires that

Pr[y ^(n) |x ^(n) ,y ^(n-1)]=Pr[y ^(n) |x _(n)],  (19)

for all k∈[n].

The RAC can be considered to be part of a family of all possible MACs resulting from different transmitter patterns. A DM-RAC can be described by a collection of symmetric DM-MACs

{(

^(k) ,P _(Y) _(k) _(|X) _(k) ,

_(k))}_(k=0) ^(K),  (20)

where

^(k), P_(Y) _(k) _(|X) _(k) , and

_(k) are the channel input alphabet, channel transition probability, and channel output alphabet when there are k active transmitters, respectively.

RAC Communication Protocol

When the RAC communication protocol described above is utilized, transmissions happen in epochs, where each new epoch starts after a positive feedback message is sent from the decoder at one of a predetermined set of times n_(i), i∈[0, K] during the previous epoch. At the beginning of each new epoch, each transmitter independently decides whether to be silent or active until the end of this epoch. As a result, except in cases where a transmitter has to end its transmission prematurely (due, for example, to a battery dying or a transmitter moving out of range from the receiver), the set of transmitters remains unchanged for each epoch. The variation between epochs is simply a function of the specific transmitters within the set of transmitters that are active during a given epoch.

The decoder can send feedback (e.g., a single bit feedback) at each of the predetermined decoding times n_(i), i∈[0, K] to signal the transmitters to continue the transmission (a negative feedback bit), or stop the transmission and start a new epoch (a positive feedback bit). In many embodiments, the set of decoding times n_(i), i∈[0, K] are chosen such that the decoder is able to detect, using a hypothesis test h₀(⋅), whether any transmitter is active at time n₀, and it is capable of decoding the messages at time n_(k) if it concludes from a testing function h_(k)(⋅) that the number of active transmitters is k in that epoch. Potential hypothesis testing functions h_(k)(⋅) that can be utilized in accordance with various embodiments of the invention are discussed further below. In many embodiments, n₀<n₁<n₂< . . . <n_(K), as a larger number of active transmitters makes it more difficult to decode the messages. However, n₀<n₁<n₂< . . . <n_(K) does not hold in all embodiments.

Quantized Coset Random Access LDPC (RA-LDPC) Code Design

For any prime power q and finite Galois Field GF(q), a quantized coset Random Access GF(q)-LDPC (RA-LDPC) code can be constructed in the manner illustrated in FIG. 5. In the illustrated embodiment, the nested LDPC code generator 500 includes an RA-LDPC encoder 502, a random codeword selector 504 (fixing operational rate to design rate), an expurgator (removing codes with small minimum distances) 506, a coset vector v 508, and a quantizer 510 (matching channel input distribution). While a specific LDPC code generator is illustrated in FIG. 5, any of a variety of different. LDPC code generator implementations can be utilized to generate LDPC codes for the purposes of encoding user message bits using a quantized coset. RAC GF(q)-LDPC code as appropriate to the requirements of specific applications in accordance with various embodiments of the invention.

For a K-user RAC, a RA GF(q)-LDPC code can be defined on a bipartite Tanner graph

=(

,ε) with n_(K) variable nodes, r_(K) check nodes, and edge set ε⊆[n_(K)]×[r_(K)] using a K-stage design.

For each stage i∈[K], the code can be constructed as follows:

-   -   When i=1, the LDPC code is a length-n₁ regular LDPC code with         variable node degree (left degree) λ₁ and check node degree         (right degree) ρ₁. The number of check nodes r₁ satisfies         n₁λ₁=r₁ρ₁.     -   When i=2, there are n_(Δ2)         n₂−n₁ additional variable nodes and r_(Δ2)         r₂−r₁ additional check nodes. All the n₂ variable nodes add ρ₂         sockets each, which are connected to the additional r_(Δ2) check         nodes of degree λ₂. The number of check nodes r_(Δ2) satisfies         n₂λ₂=r_(Δ2)ρ₂.     -   When 3≤i<K, n_(Δi)         n_(i)−n_(i-1) additional variable nodes and r_(Δi)         r_(i)−r_(i-1) are added. λ_(i) additional sockets are added to         each of the n_(i) variable nodes, which are connected to the         r_(Δi) check nodes of degree ρ_(i). The number of check nodes         r_(Δi) satisfies n_(i)λ_(i)=r_(Δi)ρ_(i).         In the embodiment described here, edge weights and connections         are chosen at random. In other embodiments, they could be         designed in other ways. Many of the nested LDPC codes described         herein are regular LDPC codes. In many embodiments, irregular         nested LDPC codes are utilized as appropriate to the         requirements of specific applications.

For each (i, j)∈ε, (i, j) represents an undirected edge connecting the ith variable node and the jth check node; each edge value g_(i,j) is chosen uniformly at random from GF(q)\{0}. The notation

(j)

{i:(i,j)∈ε},

captures the neighborhood of check node j∈[r_(K)] resulting from edge set ε.

The n_(K) variable nodes hold a length-n_(K) vector u from GF(q)^(n) ^(K) . Vector u is a codeword if it satisfies all the r_(K) check nodes, giving

$\begin{matrix} {{{\sum\limits_{i \in {\mathcal{N}{(j)}}}\;{g_{i,j}u_{i}}} = {0\mspace{14mu}{\forall{j \in \left\lbrack r_{K} \right\rbrack}}}};} & (21) \end{matrix}$

the linear equation operates in GF(q). The set of all M=|c| codewords constitute the codebook

c={c ₁ , . . . ,c _(M)}⊆GF(q)^(n) ^(K)

for the given Tanner graph

=(

,ε). In some embodiments, all the K transmitters employ the same RA-LDPC codebook.

It is important to stress that while the r_(Δk) check nodes, added in stage-k design, can potentially connect to any of the n_(k) variable nodes, the additional n_(Δk) variable nodes can only connect to the r_(Δk) incremental check nodes. Therefore, from the perspective of the r_(Δk) incremental check nodes, the length-n_(k) LDPC code is a regular LDPC code with left degree λ_(k) and right degree ρ_(k). It should be appreciated, however, that systems and methods in accordance with various embodiments of the invention are not limited to the use of regular LDPC codes and nested LDPC codes can be employed that utilize irregular LDPC codes.

A random ensemble of RAC CF(q)-LDPC codes can be utilized in accordance with many embodiments of the invention, where each code in the ensemble is chosen uniformly at random from all possible permutations of connecting the λ_(i)n_(i), i∈[K] sockets, and all possible edge values from GF(q)\{0} for each socket during the stage-i design. It should be appreciated, however, that systems and methods in accordance with various embodiments of the invention are not limited to the use of LDPC codes generated using uniform random design.

A design for K=2 is illustrated in FIG. 6, where left Stage-1 design (sockets in light grey), right=Stage-2 design on top of Stage-1 design (incremental sockets in light blue), and sockets of the same color connect.

Based on the RAC code design outlined above, the following relationships can exist for the design parameters:

$\begin{matrix} {n_{k} = {\sum\limits_{i = 1}^{k}\; n_{\Delta\; i}}} & (22) \\ {r_{k} = {\sum\limits_{i = 1}^{k}\; r_{\Delta\; i}}} & (23) \end{matrix}$

Note that choosing parameters n_(k), λ_(k), ρ_(k) will automatically fix the corresponding number of check nodes r_(k). For example,

${r_{1} = \frac{n_{1}\lambda_{1}}{\rho_{1}}},{r_{\Delta\; 2} = \frac{n_{2}\lambda_{2}}{\rho_{2}}},$

and in general

$\begin{matrix} {r_{\Delta\; k} = {\frac{n_{k}\lambda_{k}}{\rho_{k}}.}} & (24) \end{matrix}$

Therefore, the design rates, in q-ary symbols per channel use, for each blocklength n_(k), k∈[K] is

$\begin{matrix} {R_{1} = {\frac{n_{1} - r_{1}}{n_{1}} = {1 - \frac{\lambda_{1}}{\rho_{1}}}}} & (25) \\ \begin{matrix} {R_{2} = {\frac{n_{2} - r_{2}}{n_{2}} = {1 - \frac{r_{2}}{n_{2}}}}} \\ {= {1 - \frac{\frac{{n_{1}\lambda_{1}} + {n_{2}\lambda_{2}}}{n_{2}}}{\frac{{r_{1}\rho_{1}} + {r_{\Delta 2}\rho_{2}}}{r_{2}}}}} \\ {= {1 - \frac{{\frac{n_{1}}{n_{1}}\lambda_{1}} + \lambda_{2}}{{\frac{r_{1}}{r_{2}}\rho_{1}} + {\frac{r_{\Delta 2}}{r_{2}}\rho_{2}}}}} \\ {\vdots} \end{matrix} & (26) \\ \begin{matrix} {R_{K} = {\frac{n_{K} - r_{K}}{n_{K}} = {1 - \frac{r_{K}}{n_{K}}}}} \\ {= {1 - \frac{\sum\limits_{i = 1}^{K}\;{\frac{n_{i}}{n_{K}}\lambda_{i}}}{\sum\limits_{i = 1}^{K}{\frac{r_{\Delta\; i}}{r_{K}}{\rho_{i}.}}}}} \end{matrix} & (27) \end{matrix}$

The fact that R_(i), i∈[K] are named “design rates” is deliberate, as each of the first r_(i), i∈[K] check node equations in (21) might be linearly dependent, making the actual rate larger. A significant proportion of LDPC literature assumes that the operational rate is equal to the design rate, which may not be precise for short blocklengths.

To fix the operational rate to the design rate, a random codeword selector can be utilized. Given the ensemble of RAC GF(q)-LDPC codes with design rates vector R=(R₁, . . . , R_(K)) from the RA-LDPC encoder, the random codeword selector can generate an ensemble by dividing the probability of each code in the original ensemble equally among all code(s) corresponding to a distinct combination of M_(k)

q^(n) ^(k) ^(R) ^(k) codewords of length-n for all k∈[K] from the original code.

With some abuse of notations, the codebook at blocklength n_(k), k∈[K] can be denoted by

c _((k))

{c _((k),1) , . . . c _((k),M) _(k}⊆GF() q)^(n) ^(k) .  (28)

Since the performance of an ensemble of LDPC codes is negatively affected by a small number of codes with small minimum distance, removing (expurgating) these codes can produce an ensemble with improved properties. Therefore an expurgator can be employed to remove codes with small minimum distances in the ensemble from the random codeword selector.

An expurgator utilized in accordance with many embodiments of the invention can be defined as follows. Let P_(L)(C) denote the probability of a randomly chosen code from the ensemble resulting from the random codeword selector. The expurgator can generate an ensemble, by placing probability zero on all codes whose minimum distances for the first n_(i), i∈[K] symbols (denoted by d_(min) ^(n) ^(i) (C)) is less than or equal to σ_(i)n_(i), and probability P_(L)(C|d_(min) ^(n) ^(i) (C)>σ_(i)n_(i), ∀i∈[K]) on code C whose minimum distance is greater than σ_(i)n_(i). The values of σ=(σ₁, . . . , σ_(K)) can be chosen such that Pr[d_(min) ^(n) ^(i) (C)]=O(n_(i) ^(λ) ^(i) ^(/2-1)) for all i∈[K].

Quantized coset coding can be applied before transmitting the codewords over the channel. Given the Tanner graph

=(

,ε) of a RA-LDPC encoder and the corresponding LDPC codebook c from the expurgator, the coset LDPC code can be constructed by adding a constant vector v chosen uniformly at random from GF(q)^(n) ^(K) , called the coset vector, to each codeword c_(i)∈c. The addition

c _(i) +v,i∈[M]

is performed component-wise in GF(q). The set {c_(i)+v, i∈[M]} is the codebook for the coset GF(q)-LDPC code. Each of the K transmitters can be given an independently generated coset vector v_(i), i∈[K]. It should be appreciated, however, that systems and methods in accordance with various embodiments of the invention are not limited to the use of LDPC codes developed using uniform coset random design and that any of a variety of LDPC codes including (but not limited to) codes built using nested LDPC codes can be employed as appropriate to the requirements of specific applications.

The random coset vectors can play an important role in the LDPC codes utilized in accordance with many embodiments of the invention, by effectively enlarging the support of the random LDPC code ensemble. Given a coset LDPC codebook {c_(i)+v, i∈[M]}, each symbol from each codeword c_(i)+v is mapped to a symbol from the channel input alphabet

using a quantizer δ:

δ:GF(q)→

.  (29)

Mapping δ is applied component-wise; therefore the following notation can be employed

δ(c _(i) +v)

[δ((c _(i) +v)_(j))]_(j∈[n])

for coset codeword c_(i)+v.

The set {δ(c_(i)+v), i∈[M]} is the codebook for the quantized coset GF(q)-LDPC code. All the K transmitters can adopt the same quantizer δ(⋅). In many embodiments, the design is not limited to the use of a similar quantizer.

An example quantizer is illustrated in FIG. 7, which maps symbols from GF(q) with prime power q=2³ to channel input symbols with |

|=4, such that P_(X)=( 4/8, 2/8, ⅛, ⅛).

In some embodiments, even though all the k-MAC, k∈[K], in the RAC model described above are assumed to be symmetric, the capacity-achieving distribution P_(X)* might vary with the number of active transmitters, the design allows the quantizers to vary in different incremental sub-blocks.

The random ensemble resulting from the application of random RA-LDPC encoder, random codeword selector, and expurgator can be labelled as LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K). Before transmission starts, the chosen RA-LDPC codebook, coset vector, and quantizer can be disclosed to all transmitters and the receiver within the communication system.

Decoder Design

In many embodiments, the decoder is tasked with two goals: first estimating the number of active transmitters and then decoding the messages based on the estimated number of active transmitters (if any). Recall that the transmissions happen in epochs, and the decoder sends positive feedback (e.g., a positive feedback bit) at the end of each epoch to signify the start of a new epoch. The decoding protocol can be described by a two-stage process:

-   -   1. Stage 1: Estimating the Number of Active Transmitters. The         first stage is a hypothesis test with K+1 testing functions         h_(i)(⋅) with K+1 thresholds γ_(i), i∈[0, K] that determines         whether there are any active transmitters at time n₀, and if so,         how many active transmitters there are at time n_(i), i∈[K]. If         the hypothesis test threshold is fulfilled at time n₀, then the         decoder declares there are no active transmitters for the         current epoch and a positive acknowledgement is sent to signal         the start of next epoch. Otherwise, the decoder enters the         second stage upon passing the first testing function h_(k)(⋅) at         time n_(k) for some k∈[K].     -   2. Stage 2: Decoding the Messages based on the Number of Active         Transmitters. The second stage can be (but is not limited to         being) a ML decoder with K decoding functions g_(k)(⋅), k∈[K]         that maps the received symbols y^(n) ^(k) ∈         _(k) ^(n) ^(k) to (         ^(k))^(n) ^(k) . Positive feedback can be sent at time n_(k) to         conclude the current epoch, and a new epoch can commence at the         next time step. Each transmitter can then decide whether to         start a new transmission or remain silent for the new epoch,         until the next positive feedback bit is received. In a number of         embodiments, the second stage can be implemented using a belief         propagation (e.g., message passing) decoder.

The ML decoder g_(k)(⋅) for k∈[K] active transmitters can be formally defined as

$\begin{matrix} {{g_{k}\left( y^{n_{k}} \right)} = \left\{ {\begin{matrix} {\underset{m \in {\lbrack M_{k}\rbrack}^{k}}{argmax}{P_{Y_{k}❘X^{k}}^{n_{k}}\left( {y^{n_{k}}❘x_{m}^{n_{k}}} \right)}} & {{{if}\mspace{14mu}{h_{k}\left( y^{n_{k}} \right)}} \leq \gamma_{k}} \\ {{No}\mspace{14mu}{Decoding}} & {otherwise} \end{matrix},{{{where}x_{m}^{n_{k}}}\overset{\bigtriangleup}{=}\left( {{\delta\left( {c_{{(k)},{m{(1)}}} + v_{1,{\lbrack n_{k}\rbrack}}} \right)},\ldots\mspace{14mu},{\delta\left( {c_{{(k)},{m{(k)}}} + v_{k,{\lbrack n_{k}\rbrack}}} \right)}} \right)}} \right.} & (30) \end{matrix}$

is the length-n_(k) quantized coset-shifted codewords for messages m, and h_(k)(⋅) and γ_(k) are the hypothesis test function and threshold.

A decoding is declared to be successful if both the number of active transmitters and the corresponding messages are correctly determined.

Hypothesis Tests

By way of an example of an hypothesis test that can be utilized in accordance with an embodiment of the invention, given the DM-RAC model {(

^(k),P_(Y) _(k) _(|X) _(k) ,

_(k))}_(k=0) ^(K), there exists a hypothesis test function h(⋅) and threshold γ₀ such that

$\begin{matrix} {{\Pr\left\lbrack {{h\left( Y_{k}^{n_{0}} \right)} \leq \gamma_{0}} \right\rbrack} \leq \frac{E_{k}}{\sqrt{n_{k}}}} & (31) \\ {{{\Pr\left\lbrack {{h\left( Y_{0}^{n_{0}} \right)} \leq \gamma_{0}} \right\rbrack} \leq \epsilon_{0}^{\prime}},} & (32) \end{matrix}$

for some chosen target error probability ϵ₀′, and constant E_(k)>0, provided n₀≥c₀ log n₁+o(log n₁) for some known constant c₀>0. Here Y_(i), i∈[0, K] is the output distribution with i number of active transmitters and capacity-achieving input distribution P_(X)*.

In addition, when P_(Y) _(i) ≠P_(Y), for all i≠j, i, j∈[K], then there exist K log-likelihood ratio (LLR) hypothesis test functions h_(i)(⋅) and thresholds γ_(i), i∈[0, K] that can achieve the optimal second-order term for no. However, this does not change the dominant term, i.e.,

${\Pr\left\lbrack {{h_{k}\left( Y_{k}^{n_{k}} \right)} \leq \gamma_{k}} \right\rbrack} = {{O\left( \frac{1}{\sqrt{n_{k}}} \right)}.}$

Error Analyses

Systems and methods in accordance with various embodiments of the invention that utilize Quantized Coset. RA-LDPC codes can be analyzed using error-exponent analysis and dispersion-style analysis. A comparison of both approaches can reveal that the error-exponent analysis achieves a sub-optimal bound at small blocklength n but a superior performance when target error probability ϵ is small.

Before presenting the analyses, the quantity ensemble-average number of codewords is defined. Denote the type of a vector u∈GF(q)^(n) as

_(Q) ^(n)(u)

(N(g|u),g∈

),  (33)

where N(g|u) is the number of occurrence for element g in the vector u. The set of all possible types of a length-n_(i) vector from GF(q)^(n) ^(i) , i∈[K] is denoted by

_(Q) ^(n) ^(i)

{

_(Q) ^(n) ^(i) (u):u∈GF(q)^(n) ^(i) }⊂

₊ ^(|Q|).

For a given codebook c from the LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K) ensemble, the number of type-n_(i)θ_(i), n_(i)θ_(i)∈

_(Q) ^(n) ^(i) codewords in c is denoted by S_(c) ^(n) ^(i) (θ_(i))

$\begin{matrix} {{S_{c}^{n_{i}}\left( \theta_{i} \right)} = {\sum\limits_{m = 1}^{q^{n_{i}R_{i}}}\;{1{\left\{ {{\mathcal{T}_{Q}^{n_{i}}\left( c_{m} \right)} = {n_{i}\theta_{i}}} \right\}.}}}} & (34) \end{matrix}$

The ensemble-average spectrum of the LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K) ensemble at each blocklength n_(i) (for which the total number of check nodes is r_(i)) is

S _(L,r) _(i) ^(n) ^(i)

_(C)[S _(C) ^(n) ^(i) ]={ S _(L,r) _(i) ^(n) ^(i) (θ_(i)):n _(i)θ_(i)∈

_(Q) ^(n) ^(i) },∀i∈[K].  (35)

Error-Exponent Analysis

Given a RAC model {(

^(k),P_(Y) _(k) _(|X) _(k) ,

_(k))}_(k=0) ^(K), where a single distribution P_(X)* achieves the capacity for different numbers of active transmitters, the ensemble-average probability of the proposed RA-LDPC ensemble can be bounded. Recall that if there are k active transmitters, a correct decoding typically requires that the decoder determine both the number of active transmitters and their messages at time n_(k).

Consider any DM-RAC {(

^(k),P_(Y) _(k) _(|X) _(k) ,

_(k))}_(k=0) ^(K) defined above, where a single distribution P_(X)* achieves the capacity for all possible numbers of active transmitters k∈[K]. Let δ: GF(q)→

be a quantization matched to P_(X)*. The ensemble-average error probability of the quantized coset-shifted LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K) ensemble, at blocklength n_(k) for k active transmitters, satisfies

$\begin{matrix} {\epsilon_{k} \leq {q^{{- n}\;{E_{P_{k}}\lbrack{{kR}_{k} + k^{\frac{\log\;\alpha_{k}}{n_{k}}}}\rbrack}} +}} & (36) \\ {{{\sum\limits_{i = 0}^{k - 1}\;{\Pr\left\lbrack {{h_{i}\left( Y_{i}^{n_{i}} \right)} \leq \gamma_{i}} \right\rbrack}} + {\Pr\left\lbrack {{h_{k}\left( Y_{k}^{n_{k}} \right)} > \gamma_{k}} \right\rbrack}},} & (37) \end{matrix}$

and the probability of failing to detect that no transmitter is active at time n₀ is

ϵ₀ ≤Pr[h ₀(Y ₀ ^(n) ⁰ )>γ₀],  (38)

where h_(i)(⋅) and γ_(i), i∈[0, K] are hypothesis test functions and corresponding thresholds, E_(P) _(k) (⋅), k∈[K] is Gallager's error exponent for the input distribution P_(X) _(k) *=(P_(X)*)^(k)

$\begin{matrix} {{E_{P_{k}}(R)}\overset{\Delta}{=}{{\max\limits_{0 \leq \tau \leq 1}\;{E_{0}\left( {\tau,P_{X^{k}}^{*}} \right)}} - {\tau\; R}}} & (39) \\ {{{E_{0}\left( {\tau,P_{X^{k}}^{*}} \right)}\overset{\Delta}{=}{{- \log}\;{\sum\limits_{{y\epsilon}\;\gamma_{k}}^{\;}\;\left\lbrack {\sum\limits_{{x\epsilon}\;\chi^{k}}^{\;}\;{{P_{X^{k}}^{*}(x)}P_{Y_{k}|{X^{k}{({y|x})}}^{\frac{1}{1 + r}}}}} \right\rbrack^{1 + r}}}},} & (40) \end{matrix}$

α_(k) is a penalty of the LDPC encoder, defined using

$\begin{matrix} {{\alpha_{k}\overset{\Delta}{=}{\frac{1}{\left( {M_{k} - 1} \right)q^{- n_{k}}}\;\mspace{11mu}\frac{{\overset{\_}{S}}_{L,r_{k}}^{n_{k}}\left( \theta_{k} \right)}{B\left( {n_{k},{n_{k}\theta_{k}}} \right)}}},} & (41) \end{matrix}$

and M_(k)=q^(n) ^(k) ^(R) ^(k) is the number of codewords at blocklength n_(k) and design rate R_(k).

When there is no active transmitter, the probability of failing to detect that no transmitter is active using hypothesis test function h₀(⋅) (38) is bounded. When the number of active transmitters is k for some k∈[K], the probability of incorrect decoding using Gallager's error exponents (36) and hypothesis test functions (37) is also bounded.

On one hand, the performances of hypothesis tests can be determined. The probability of incorrectly estimating the true number of active transmitters decay as

${O\left( \frac{1}{\sqrt{n_{k}}} \right)}.$

On the other hand, Gallager's error exponent E_(P)(R) is strictly positive E_(P)(R)>0 for any R<C (assuming using capacity achieving distribution P_(X)*) for any discrete memoryless point-to-point (DM-PPC) with capacity C>0. Similarly, E_(p)(kR_(k))>0 for all kR_(k)<kC_(k) in the DM-k-MAC (where kR_(k) is the symmetrical sum-rate and kC_(k) is the maximum symmetrical sum-rate).

If the performance of i.i.d. random codes drawn from P_(X)* is bounded, then the only difference between i.i.d. codes and the codes described herein will be the error exponent in (36). For i.i.d. random codes, the error exponent will be

q^(−nE_(P_(k))[kR_(k)]).

Therefore,

$\frac{\log\;\alpha_{k}}{n_{\kappa}}$

in (36) can be referred to as the per-transmitter rate offset for using a low-density encoder.

Evaluation of Rate Offsets

$\frac{\log\;\alpha_{k}}{n_{\kappa}},$

k∈[K]

Given any RA-LDPC code ensemble LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K), the rate offsets

$\frac{\log\;\alpha_{k}}{n_{\kappa}},$

k∈[K] behave as

$\begin{matrix} {{\frac{\log\;\alpha_{k}}{n_{\kappa}} = {O\left( \frac{\log\; n_{k}}{n_{\kappa}} \right)}},{where}} & (42) \\ {{\alpha_{k} = {\frac{1}{\left( {M_{k} - 1} \right)q^{- n_{k}}}\mspace{11mu}\mspace{11mu}\frac{{\overset{\_}{S}}_{L,r_{k}}^{n_{k}}\left( \theta_{k} \right)}{B\left( {n_{k},{n_{k}\theta_{k}}} \right)}}},} & (43) \end{matrix}$

provided that the density

$k_{i}\overset{\Delta}{=}\frac{\rho_{i}}{n_{i}}$

decays no more quickly than

$\frac{\log\;\left( \frac{\log\; n_{i}}{n_{i}} \right)}{n_{i}{\log\left( b_{i} \right)}},$

where b_(i)<1 is sore known constant that depends on q and the expurgator threshold σ_(i), for all i∈[k].

The densities of the LDPC code

${\kappa_{i} = \frac{\rho_{i}}{n_{i}}},$

i∈[K] represent a trade-off between the performance and the complexity. A higher κ yields better LDPC code performance at the cost of higher decoding complexity, and a lower κ reduces the decoding complexity with worse performance.

Recall that when n_(k)θ_(k) is a type, S _(L,r) _(k) ^(n) ^(k) (θ_(k)) is the expected number of codewords of type n_(k)θ_(k) in the randomly drawn single-transmitter codebook C_((k)) from the LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K) ensemble.

For simplicity of notations, the following derivation assumes that the number of active transmitters is k=2. Similar arguments hold for any k>2.

When k=2, the LDPC code includes two categories of check nodes, where the first r₁ check nodes only connect to the first n₁ symbols (variable nodes), and the second incremental r_(Δ2) check nodes connect to all the n₂ symbols. Hence, given a type n₂θ₂, all possible “sub-types” of the first n₁ variable nodes can be separated. That is, the compatible set of types can be defined as

_(comp)(θ₁|θ₂)

{θ₁ :n ₁θ₁∈

_(Q) ^(n) ¹ ,n ₁θ₁ ≤n ₂θ₂}.  (44)

For a given θ₂ and some compatible θ₁, the incremental type can be defined as the type of the incremental n_(Δ2) symbols. That is,

$\theta_{\Delta 2}\overset{\Delta}{=}{\frac{{n_{2}\theta_{2}} - {n_{1}\theta_{1}}}{n_{\Delta\; 2}}.}$

The process of evaluating S _(L,r) ₂ ^(n) ² (θ₂) is as follows. Let

(n₁θ₁, n_(Δ2)θ_(Δ2)) denote all possible codewords of sub-type pair (n₁θ₁, n_(Δ2)θ_(Δ2)). Then

$\begin{matrix} \begin{matrix} {{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( \theta_{2} \right)} = {\sum\limits_{\theta_{1}{{\epsilon S}_{comp}{({\theta_{1}❘\theta_{2}})}}}{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( {\theta_{1},\theta_{\Delta 2}} \right)}}} \\ {= {\sum\limits_{\theta_{1}{{\epsilon S}_{comp}{({\theta_{1}❘\theta_{2}})}}}{{\mathbb{E}}_{c_{(2)}}\left\lbrack {\sum\limits_{c_{0}{{\epsilon\mathcal{M}}{({{n_{1}\theta_{1}},{n_{\Delta\; 2}\theta_{\Delta 2}}})}}}{\left\{ {c_{0} \in C_{(2)}} \right\}}} \right\rbrack}}} \\ {= {\sum\limits_{\theta_{1}{{\epsilon S}_{comp}{({\theta_{1}❘\theta_{2}})}}}{\sum\limits_{c_{0}{{\epsilon\mathcal{M}}{({{n_{1}\theta_{1}},{n_{\Delta\; 2}\theta_{\Delta 2}}})}}}{{\mathbb{E}}_{c_{(2)}}\left\lbrack \;{\;\left\{ {c_{0} \in C_{(2)}} \right\}} \right\rbrack}}}} \\ {= {\sum\limits_{\theta_{1}{{\epsilon S}_{comp}{({\theta_{1}❘\theta_{2}})}}}{\sum\limits_{c_{0}{{\epsilon\mathcal{M}}{({{n_{1}\theta_{1}},{n_{\Delta\; 2}\theta_{\Delta 2}}})}}}{\Pr\left\lceil {c_{0} \in C_{(2)}} \right\rceil}}}} \\ {{\overset{(a)}{=}{\sum\limits_{\theta_{1}{{\epsilon S}_{comp}{({\theta_{1}❘\theta_{2}})}}}{{B\left( {n_{1},{n_{1}\theta_{1}}} \right)}{{B\left( {n_{\Delta\; 2},{n_{\Delta\; 2}\theta_{\Delta 2}}} \right)} \cdot {\Pr\left\lbrack {c_{{n_{1}\theta_{1}},{n_{\Delta\; 2}\theta_{\Delta 2}}}C_{(2)}} \right\rbrack}}}}},} \end{matrix} & (45) \end{matrix}$

where B(n₁, n₁θ₁)B(n_(Δ2), n_(Δ2)θ_(Δ2)) is the size of the set

(n₁θ₁,n_(Δ2)θ_(Δ2)) (the number of ways to permute a length-n₂ vector of type sub-type pair (n₁θ₁, n_(Δ2)θ_(Δ2))), c_(n) ₁ _(θ) ₁ _(,n) _(Δ2) _(θ) _(Δ2) is any fixed codeword in

(n₁θ₁, n_(Δ2)θ_(Δ2)), and (α) follows from the symmetry of the code design (no codeword is treated any better or worse than any other codewords).

To calculate the probability that a codeword of length n₂ and sub-type (n₁θ₁, n_(Δ2)θ_(Δ2)) is in the random codebook C₍₂₎, it should be noted that there are B(n₁λ₁, n₁λ₁θ₁)B(n₂λ₂, n₂λ₂θ₂) equally likely assignments of variable node values to sockets that are consistent with PDF (θ₁, θ_(Δ2)). Combining this number with the q−1 possible values for each edge, we find that there are

t((θ₁,θ_(Δ2)),n ₂)

(q−1)^(n) ¹ ^(λ) ¹ ^(+n) ² ^(λ) ² ·B(n ₁λ₁ ,n ₁λ₁θ₁)B(n ₁λ₂ ,n ₁λ₂θ₁)B(n _(Δ2)λ₂ ,n _(Δ2)λ₂θ_(Δ2))  (46)

equally likely outcomes for the choice of socket connections and edge values under a fixed type (n₁θ₁, n_(Δ2)θ_(Δ2)).

A generating function A_(<2>)(x) can be built for each of the r₂ check nodes. The combined generating function for all r₂ check nodes A_(<2>)(x)^(r) ² is constructed such that the coefficient of the term x^(n) ¹ ^(λ) ¹ ^(θ) ¹ ^(,n) ² ^(λ) ² ^(θ) ² , denoted by └A_(<2>)(x)^(r) ¹ ┘_(n) ₁ _(λ) ₁ _(θ) ₁ _(,n) ₂ _(λ) ₂ _(θ) ₂ , describes the number of edge and socket assignments for which c_(n) ₁ _(θ) ₁ _(,n) _(Δ2) _(θ) _(Δ2) is a codeword. Notice that n₁λ₁θ₁ represents the type of the n₁λ₁ sockets from the first n₁ variable nodes (added in stage-1 design), and n₂λ₂θ₂ represents the type of the n₂λ₂ sockets from the whole n₂ variable nodes (added in stage-2 design). Therefore,

$\begin{matrix} {{\Pr\left\lbrack {c_{{n_{1}\theta_{1}},{n_{\Delta\; 2}\theta_{\Delta 2}}} \in C_{(2)}} \right\rbrack} = \frac{\left\lfloor {A_{< 2 >}(x)}^{r_{2}} \right\rfloor_{{n_{1}\lambda_{1}\theta_{1}},{n_{2}\lambda_{2}\theta_{2}}}}{t\left( {\left( {\theta_{1},\theta_{\Delta\; 2}} \right),n_{2}} \right)}} & (47) \end{matrix}$

Since the first r_(i) check nodes are different from the incremental r_(Δ2) check nodes in the sense that they have different numbers of sockets and can connect to different variable nodes, the generating function A_(<2>)(x)^(r) ² can be separated into two categories

A _(<2>)(x)^(r) ² =A ₁(x ₁)^(r) ¹ A ₂(x _(2,1) ,x _(2,2))^(r) ^(Δ2) ,

and their coefficients satisfy

└A _(<2>)(x)^(r) ² ┘_(n) ₁ _(λ) ₁ _(,n) ₂ _(λ) ₂ _(θ) ₂ =└A ₁(x ₁)^(r) ¹ A ₂(x _(2,1) ,x _(2,2))^(r) ^(Δ2) ┘_(n) ₁ _(λ) ₁ _(θ) ₁ _(|n) ₁ _(λ) ₂ _(θ) ₁ _(,n) _(Δ2) _(λ) ₂ _(θ) _(Δ2) ,

where A₁(x₁)^(r) ¹ is the generating function for the first r₁ check nodes, and A₂(x_(2,1), x_(2,2))^(r) ^(Δ2) is the generating function of the incremental r_(Δ2) check nodes.

Whilst A₁(x₁)^(r) ¹ corresponds to the generating function of a regular LDPC code, a direct calculation of A₂(x_(2,1), x_(2,2)) might be challenging as it needs to be separated into different cases, depending on how many of the ρ₂ sockets are coming from the first i variables nodes (corresponding to x_(2,1) term) and how many of them are from the n_(Δ2) variable nodes (corresponding to x_(2,2) term).

To overcome this difficulty, the joint generating function

└A ₁(x ₁)^(r) ¹ A ₂(x _(2,1) ,x _(2,2))^(r) ^(Δ2) ┘_(n) ₁ _(λ) ₁ _(θ) ₁ _(|n) ₁ _(λ) ₂ ₇₄ ₁ _(,n) _(Δ2) _(λ) ₂ _(θ) _(Δ2)   (48)

can be broken into two independent generating functions as

└A ₁(x ₁)^(r) ¹ A ₂(x _(2,1) ,x _(2,2))^(r) ^(Δ2) ┘_(n) ₁ _(λ) ₁ _(θ) ₁ _(|n) ₁ _(λ) ₂ _(θ) ₁ _(,n) _(Δ2) _(λ) ₂ _(θ) _(Δ2) =└A ₁(x ₁)^(r) ¹ ┘_(n) ₁ _(λ) ₁ _(θ) ₁ └A ₂(x _(2,1) ,x _(2,2))^(r) ^(Δ2) ┘_(n) ₁ _(λ) ₂ _(θ) ₁ _(,n) _(Δ2) _(λ) ₂ _(θ) _(Δ2) .  (49)

The intuition behind breaking apart the generating function in this way is that the sockets for the first group of r_(Δ1) check nodes can be independently drawn compared to the the sockets for the second group of r_(Δ2) check nodes. In other words, for any given sockets configuration that are satisfied with the first group of check nodes, it is possible to choose └A₂(x_(2,1),x_(2,2))^(r) ^(Δ2) ┘_(n) ₁ _(λ) ₂ _(θ) ₁ _(,n) _(Δ2) _(λ) ₂ _(θ) _(Δ2) different socket connections for the second group of check nodes, and all of them are typically satisfied with both groups of check nodes and thus give valid codewords.

Furthermore, given a type n₂θ₂ and some compatible sub-type pair (n₁θ₁, n_(Δ2)θ_(Δ2)), that is, θ₁∈

_(comp)(θ₁|θ₂) and

${\theta_{\Delta\; 2} = \frac{{n_{2}\theta_{2}} - {n_{1}\theta_{1}}}{n_{\Delta\; 2}}},$

then

$\begin{matrix} {{\left\lfloor {A_{2}\left( {x_{2,1},x_{2,2}} \right)}^{r_{\Delta\; 2}} \right\rfloor_{{n_{1}\lambda_{2}\theta_{1}},{n_{\Delta\; 2}\lambda_{2}\theta_{\Delta\; 2}}} = {\left\lfloor {A_{2}\left( x_{2} \right)}^{r_{\Delta 2}} \right\rfloor_{n_{2}\lambda_{2}\theta_{2}} \cdot \frac{\begin{pmatrix} n_{1} \\ {n_{1}\theta_{1}} \end{pmatrix}\begin{pmatrix} n_{\Delta\; 2} \\ {n_{\Delta\; 2}\theta_{\Delta\; 2}} \end{pmatrix}}{\begin{pmatrix} n_{2} \\ {n_{2}\theta_{2}} \end{pmatrix}}}},} & (50) \end{matrix}$

where A₂(x₂) is the generating function for one check node in a regular LDPC code with parameter (λ₂, ρ₂), and the coefficient of the term x₂ ^(n) ² ^(λ) ¹ ^(θ) ² can be taken in the generating function A₂(x₂)^(r) ^(Δ2) .

The intuition behind this approach is that for any given fixed sequence of n₂ symbols of type θ₂n₂, the number of socket connections and edge values that satisfy the r_(Δ2) check nodes are the same. However, it is only necessary to count the sequences such that the first n₁ symbols are of type n₁θ₁ and the second incremental n_(Δ2) symbols are of type n_(Δ2)θ_(Δ2). The total number of different length-n₂ sequences of type-n₂θ₂ is the multinomial coefficient (_(n) ₂ _(θ) ₂ ^(n) ² ),and (_(n) ₁ _(θ) ₁ ^(n) ¹ )(_(n) _(Δ2) _(θ) _(Δ2) ^(n) ^(Δ2) ) of them are consistent with the sub-type pair (n₁θ₁,n_(Δ2)θ_(Δ2)). In addition, since the contribution (that is, the number of socket connections and permutations that satisfies the check nodes) of every sequence is the same, the approach can be effective. Furthermore, the above approaches can be generalized to arbitrary k≥2

Applying the above approaches to └A_(<2>)(x)^(r) ² ┘_(n) ₁ _(λ) ₁ _(θ) ₁ _(,n) ₂ _(λ) ₂ _(θ) ₂ in (47), it is possible to obtain

$\begin{matrix} {{\Pr\left\lbrack {c_{{{n\;}_{1}\theta_{1}},{n_{\Delta\; 2}\theta_{\Delta\; 2}}} \in C_{(2)}} \right\rbrack} = \frac{\begin{matrix} \left\lfloor {A_{1}\left( x_{1} \right)}^{r_{1}} \right\rfloor_{n_{1}\lambda_{1}\theta_{1}} \\ \left\lfloor {A_{2}\left( x_{2} \right)}^{r_{\Delta\; 2}} \right\rfloor_{n_{2}\lambda_{2}{\theta_{2} \cdot \frac{\begin{matrix} {(\begin{matrix} n_{1} \\ {n_{1}\theta_{1}} \end{matrix})} \\ {(\begin{matrix} n_{\Delta\; 2} \\ {n_{\Delta\; 2}\theta_{\Delta\; 2}} \end{matrix})} \end{matrix}}{(\begin{matrix} n_{2} \\ {n_{2}\theta_{2}} \end{matrix})}}} \end{matrix}}{t\left( {\left( {\theta_{1},\theta_{\Delta\; 2}} \right),n_{2}} \right)}} & {{~~~~~~~~~}(51)} \\ {= {\frac{\left\lfloor {A_{1}\left( x_{1} \right)}^{r_{1}} \right\rfloor_{n_{1}\lambda_{1}\theta_{1}^{\frac{\begin{matrix} {(\begin{matrix} n_{1} \\ {n_{1}\theta_{1}} \end{matrix})} \\ {(\begin{matrix} n_{\Delta\; 2} \\ {n_{\Delta\; 2}\theta_{\Delta\; 2}} \end{matrix})} \end{matrix}}{(\begin{matrix} n_{2} \\ {n_{2}\theta_{2}} \end{matrix})}}}}{{B\left( {{n_{1}\lambda_{1}},{n_{1}\lambda_{1}\theta_{1}}} \right)}\left( {q - 1} \right)^{n_{1}\lambda_{1}}} \cdot}} & {(52)} \\ {\frac{\left\lfloor {A_{2}\left( x_{2} \right)}^{r_{\Delta\; 2}} \right\rfloor_{n_{2}\;{\lambda\;}_{2}\theta_{2}}}{\begin{matrix} {B\left( {{n_{1}\lambda_{2}},{n_{1}\lambda_{2}\theta_{1}}} \right)} \\ {B\left( {{n_{\Delta 2}\lambda_{2}},{n_{\Delta 2}\lambda_{2}\theta_{\Delta 2}}} \right)\left( {q - 1} \right)^{n_{2}\lambda_{2}}} \end{matrix}}.} &  \end{matrix}$

Substituting (52) into (45) and combining with the

$\frac{1}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)}$

factor from (41) gives

$\begin{matrix} {\frac{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( \theta_{2} \right)}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)} = {\sum\limits_{\theta_{1} \in {S_{comp}{({\theta_{1}❘\theta_{2}})}}}\;{\frac{{B\left( {n_{1},{n_{1}\theta_{1}}} \right)}{B\left( {n_{\Delta 2},{n_{\Delta 2}\theta_{\Delta 2}}} \right)}}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)} \cdot \frac{\left\lfloor {A_{1}\left( x_{1} \right)}^{r_{1}} \right\rfloor_{n_{1}\lambda_{1}\theta_{1}^{\frac{{(\begin{matrix} n_{1} \\ {n_{1}\theta_{1}} \end{matrix})}{(\begin{matrix} n_{\Delta\; 2} \\ {n_{\Delta\; 2}\theta_{\Delta\; 2}} \end{matrix})}}{(\begin{matrix} n_{2} \\ {n_{2}\theta_{2}} \end{matrix})}}}}{{B\left( {{n_{1}\lambda_{1}},{n_{1}\lambda_{1}\theta_{1}}} \right)}\left( {q - 1} \right)^{n_{1}\lambda_{1}}} \cdot {\frac{\left\lfloor {A_{2}\left( x_{2} \right)}^{r_{\Delta 2}} \right\rfloor_{n_{2}\;{\lambda\;}_{2}\theta_{2}}}{{B\left( {{n_{1}\lambda_{2}},{n_{1}\lambda_{2}\theta_{1}}} \right)}{B\left( {{n_{\Delta 2}\lambda_{2}},{n_{\Delta 2}\lambda_{2}\theta_{\Delta 2}}} \right)}\left( {q - 1} \right)^{n_{2}\lambda_{2}}}.}}}} & (53) \end{matrix}$

To bound each of the terms in (53), it is possible to take the log and divide by n₂ to find the “exponent”. To do that, the following results are utilized:

1. For a given type nθ∈

_(Q) ^(n),

$\begin{matrix} {{{H(\theta)} - {\frac{1}{n}\log\;{B\left( {n,{n\;\theta}} \right)}}} = {O\left( \frac{\log\; n}{n} \right)}} & (54) \end{matrix}$

2. For an expurgated regular LDPC ensemble with parameter (λ, ρ; n),

$\begin{matrix} {{{\lim\limits_{n\rightarrow\infty}{\frac{1}{n}\log\;\left\lfloor \left( \left( {A(x)} \right)^{n\;{\lambda/\rho}} \right) \right\rfloor_{n\;\lambda\;\theta}}} \leq {{{\lambda H}(\theta)} + {{\lambda log}\left( {q - 1} \right)} - \frac{\lambda}{\rho} + {O\left( b_{0}^{\kappa\; n} \right)}}},} & (55) \end{matrix}$

where b₀<1 is some constant that depends q and the expurgation threshold σ. In particular, choosing

$\kappa = \frac{\log\left( \frac{\log\; n}{n} \right)}{n\;{\log\left( b_{0} \right)}}$

can ensure that

${O\left( b_{0}^{\kappa\; n} \right)} = {{O\left( \frac{\log\; n}{n} \right)}.}$

3. For an expurgated LDPC ensemble.

$\begin{matrix} {{\max\limits_{\theta:{{n\;\theta} \in \mathcal{T}_{Q}^{n}}}\left\lbrack {{\frac{1}{n}\log\left\lfloor \left( \left( {A(x)} \right)^{n\;{\lambda/\rho}} \right) \right\rfloor_{n\;{\lambda\theta}}} - {\lim\limits_{n\rightarrow\infty}{\frac{1}{n}\log\;\left\lfloor \left( \left( {A(x)} \right)^{n\;{\lambda/\rho}} \right) \right\rfloor_{n\;\lambda\;\theta}}}} \right\rbrack} = {{O\left( \frac{\log\; n}{n} \right)}.}} & (56) \end{matrix}$

Recall that A₁(x₁)^(r) ¹ and A₂(x₂)^(r) ^(Δ2) are the generating functions for regular LDPC codes with parameter (λ₁, ρ₁; n₁) and (λ₂, ρ₂; n₂), respectively. With the assumption that

$\kappa_{i} = \frac{\lambda_{i}}{n_{i}}$

decays no faster than

$\frac{\log\left( \frac{\log\; n_{i}}{n_{i}} \right)}{{n\;}_{i}\log\; b_{i}}$

for i∈[2], the following bounds can be found for each of the terms in (53).

Generating function A₁(x₁)^(r) ¹ :

$\begin{matrix} {{\frac{1}{n_{2}}\log\left\lfloor {A_{1}\left( x_{1} \right)}^{r_{1}} \right\rfloor_{{n\;}_{1}\lambda_{1}\theta_{1}}} \leq {{\frac{n_{1}}{n_{2}}\left( {{\lambda_{1}{H\left( \theta_{1} \right)}} + {\lambda_{1}{\log\left( {q - 1} \right)}} - \frac{\lambda_{1}}{\rho_{1}}} \right)} + {{O\left( \frac{\log\; n_{1}}{n_{2}} \right)}.}}} & (57) \end{matrix}$

Generating function A₂(x₂)^(r) ^(Δ2) :

$\begin{matrix} {{\frac{1}{n_{2}}\log\left\lfloor {A_{2}\left( x_{2} \right)}^{r_{\Delta 2}} \right\rfloor_{{n\;}_{2}\lambda_{2}\theta_{2}}} \leq {{\lambda_{2}{H\left( \theta_{2} \right)}} + {\lambda_{2}{\log\left( {q - 1} \right)}} - \frac{\lambda_{2}}{\rho_{2}} + {{O\left( \frac{\log\; n_{2}}{n_{2}} \right)}.}}} & (58) \end{matrix}$

Each of the multinomial coefficients:

$\begin{matrix} {\;{{\frac{1}{n_{2}}\log\;{B\left( {{n_{1}\lambda_{1}},{n_{1}\lambda_{1}\theta_{1}}} \right)}} = {{\frac{n_{1}}{n_{2}}\lambda_{1}{H\left( \theta_{1} \right)}} + {O\left( \frac{\log\; n_{1}}{n_{2}} \right)}}}} & (59) \\ {{{\frac{1}{n_{2}}\log\;{B\left( {{n_{1}\lambda_{2}},{n_{1}\lambda_{2}\theta_{1}}} \right)}} = {{\frac{n_{1}}{n_{2}}\lambda_{2}{H\left( \theta_{1} \right)}} + {O\left( \frac{\log\; n_{1}}{n_{2}} \right)}}},{and}} & (60) \\ {{\frac{1}{n_{2}}\log\;{B\left( {{n_{\Delta 2}\lambda_{2}},{n_{\Delta 2}\lambda_{2}\theta_{\Delta 2}}} \right)}} = {{\frac{n_{\Delta 2}}{n_{2}}\lambda_{2}{H\left( \theta_{2} \right)}} + {{O\left( \frac{\log\; n_{\Delta 2}}{n_{2}} \right)}.}}} & (61) \end{matrix}$

The possible number of edge values (q−1)^(n) ¹ ^(λ) ¹ and (q−1)^(n) ² ^(λ) ² :

$\begin{matrix} {{\frac{1}{n_{2}}{\log\left( {q - 1} \right)}^{n_{1}\lambda_{1}}} = {\frac{n_{1}}{n_{2}}\lambda_{1}{\log\left( {q - 1} \right)}}} & (62) \\ {{\frac{1}{n_{2}}{\log\left( {q - 1} \right)}^{n_{2}\lambda_{2}}} = {\lambda_{2}{{\log\left( {q - 1} \right)}.}}} & (63) \end{matrix}$

Note that the number of terms in the set

_(comp)(θ₁|θ₂) can grow polynomially in blocklength, while the number of codewords grows exponentially in blocklength, to obtain that

$\begin{matrix} {{\lim\limits_{n_{1}\rightarrow\infty}{\max\limits_{\theta_{2}:{{\theta_{2}n_{2}} \in \mathcal{T}_{Q}^{n_{2}}}}\frac{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( \theta_{2} \right)}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)}}} = {\lim\limits_{n_{1}\rightarrow\infty}{\max\limits_{\theta_{2}:{{\theta_{2}n_{2}} \in \mathcal{T}_{Q}^{n_{2}}}}\sum\limits_{\theta_{1} \in {S_{comp}{({\theta_{1}❘\theta_{2}})}}}}}} & {{~~~~~~}(64)} \\ {\frac{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( {\theta_{1},{\theta\Delta}_{2}} \right)}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)}} & \\ {= {\lim\limits_{n_{1}\rightarrow\infty}{\max\limits_{\theta_{2}:{{\theta_{2}n_{2}} \in \mathcal{T}_{Q}^{n_{2}}}}\max\limits_{\theta_{1} \in {S_{comp}{({\theta_{1}❘\theta_{2}})}}}}}} & {(65)} \\ {\frac{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( {\theta_{1},{\theta\Delta}_{2}} \right)}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)}.} &  \end{matrix}$

Combining the results from (57) to (63), for large-enough blocklength n₁ provides

$\begin{matrix} {{\mspace{14mu}\frac{1}{n_{2}}\log\;\frac{{\overset{\_}{S}}_{L,r_{2}}^{n_{2}}\left( \theta_{2} \right)}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)}} \leq \;{{\;{\underset{\theta_{1}\epsilon\;{S_{comp}{({\theta_{1}❘\theta_{2}})}}}{\;\max}{{\cdot \frac{1}{n_{2}}}\log\;\left( \frac{{B\left( {n_{1},{n_{1}\theta_{1}}} \right)}{B\left( {n_{\Delta\; 2},{n_{\Delta\; 2}\theta_{\Delta\; 2}}} \right)}}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)} \right)^{2}}}} - {\frac{n_{1}}{n_{2}}\frac{\lambda_{1}}{\rho_{1}}} - \frac{\lambda_{2}}{\rho_{2}} + {\lambda_{2}{H\left( \theta_{2} \right)}} - {\frac{n_{1}}{n_{2}}\lambda_{2}{H\left( \theta_{1} \right)}} - {\frac{n_{\Delta\; 2}}{n_{2}}\lambda_{2}{H\left( \theta_{2} \right)}} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}} & (66) \\ {\mspace{79mu}{{\leq {{{- \frac{n_{1}}{n_{2}}}\frac{\lambda_{1}}{\rho_{1}}} - \frac{\lambda_{2}}{\rho_{2}} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}},}} & (67) \end{matrix}$

where (67) follows from the fact that

${{\log\frac{{B\left( {n_{1},{n_{1}\theta_{1}}} \right)}{B\left( \left( {n_{\Delta\; 2},{n_{\Delta\; 2}\theta_{\Delta\; 2}}} \right) \right.}}{B\left( {n_{2},{n_{2}\theta_{2}}} \right)}} \leq {\log\; 1}} = 0$

for all θ₁∈

_(comp)(θ₁|θ₂) and

$\begin{matrix} {\;\;{\max\limits_{\theta_{1}\epsilon\;{S_{comp}{({\theta_{1}❘\theta_{2}})}}}\left\lbrack {{\lambda_{2}{H\left( \theta_{2} \right)}} - {\frac{n_{1}}{n_{2}}\lambda_{2}{H\left( \theta_{1} \right)}} - {\frac{n_{\Delta\; 2}}{n_{2}}\lambda_{2}{H\left( \theta_{2} \right)}}} \right\rbrack}} & (68) \\ {\mspace{79mu}{= {\mspace{11mu}{\max\limits_{\theta_{1}\epsilon\;{S_{comp}{({\theta_{1}❘\theta_{2}})}}}{\frac{\lambda_{2}n_{1}}{n_{2}}\left( {{H\left( \theta_{2} \right)} - {H\left( \theta_{1} \right)}} \right)}}}}} & (69) \\ {\mspace{79mu}{= 0.}} & (70) \end{matrix}$

Here (70) follows from the fact θ₁ can always be chosen to be more uniform than θ₂, as it can use all the elements from n₂θ₂, and it only needs to construct a shorter sequence of length n₁.

Finally, substituting (67) back into the expression of

$\frac{\log\;\alpha_{2}}{n_{2}}$

in (41), the following is obtained for large enough blocklength n₁

$\begin{matrix} {\frac{\log\;\alpha_{2}}{n_{2}} = {{\frac{1}{n_{2}}\log\;\frac{1}{\left( {q^{n_{2}R_{2}} - 1} \right)q^{- n_{2}}}} - {\frac{n_{1}}{n_{2}}\frac{\lambda_{1}}{\rho_{1}}} - \frac{\lambda_{2}}{\rho_{2}} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}} & (71) \\ {= {\left( {1 - R_{2}} \right) + {O\left( \frac{1}{n_{2}q^{n_{2}R_{2}}} \right)} - {\frac{n_{1}}{n_{2}}\frac{\lambda_{1}}{\rho_{1}}} - \frac{\lambda_{2}}{\rho_{2}} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}} & (72) \\ {= {\frac{r_{2}}{n_{2}} - {\frac{n_{1}}{n_{2}}\frac{\lambda_{1}}{\rho_{1}}} - \frac{\lambda_{2}}{\rho_{2}} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}} & (73) \\ {= {{\frac{1}{n_{2}}\left( {r_{2} - \frac{n_{1}\lambda_{1}}{\rho_{1}} - \frac{n_{2}\lambda_{2}}{\rho_{2}}} \right)} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}} & (74) \\ {= {{\frac{1}{n_{2}}\left( {r_{2} - r_{1} - r_{\Delta\; 2}} \right)} + {O\left( \frac{\log\; n_{2}}{n_{2}} \right)}}} & (75) \\ {= {+ {{O\left( \frac{\log\; n_{2}}{n_{2}} \right)}.}}} & (76) \end{matrix}$

where (72) follows from the Taylor series expansion of log(1−1/q^(n) ² ^(R) ² ), (73) applies the definition of R₂ from (26), and (76) follows from the relationship between the LDPC parameters.

The above arguments can be generalized to arbitrary k∈[K] using the same approach. The rate-offset

$\frac{\log\;\alpha_{k}}{n_{k}}$

goes to 0 as n₁ goes to infinity. Furthermore, the rate offset behaves as

$O\left( \frac{\log\;\alpha_{k}}{n_{k}} \right)$

for large enough n₁ provided the densities

$\kappa_{i} = \frac{\lambda_{i}}{n_{i}}$

decays no faster than

$\frac{\log\left( \frac{\log\; n_{i}}{n_{i}} \right)}{n_{i}\log\; b_{i}}$

for all i∈[k].

The term O(b_(i) ^(κ) ¹ ^(n) ¹ ) can be made to behave as some target function O(ƒ(n_(i))) by setting

$\begin{matrix} {b_{i}^{\kappa_{i}n_{i}} = {f\left( n_{i} \right)}} & (77) \\ {{\kappa_{i}n_{i}\log\; b_{i}} = {\log\;{f\left( n_{i} \right)}}} & (78) \\ {\kappa_{i} = {\frac{\log\;{f\left( n_{i} \right)}}{n_{i}\log\; b_{i}}.}} & (79) \end{matrix}$

For example, if it is desired that

${O\left( b_{i}^{\kappa_{i}n_{i}} \right)} = {O\left( \frac{\log\; n_{i}}{n_{i}} \right)}$

(the third-order term in (92)), then

$\kappa_{i} = \frac{\log\left( \frac{\log\; n_{i}}{n_{i}} \right)}{n_{i}\log\; b_{i}}$

Similarly, if the design objective only requires

${O\left( b_{i}^{\kappa_{i}n_{i}} \right)} = {O\left( \frac{1}{\sqrt{n_{i}}} \right)}$

(dispersion, or the second-order term in (92)), then a smaller

$\kappa_{i} = \frac{\log\;\left( \frac{1}{\sqrt{n_{i}}} \right)}{n_{i}\log\;\left( b_{i} \right)}$

is needed (recall that b_(i)<1, hence log b_(i)<0).

Therefore, systems and methods in accordance with various embodiments of the invention can utilize the best κ_(i) that suits a particular performance objective O(ƒ(n_(i))) using equation (79). Conversely, the effect of a given density κ_(i) can be determined using the expression O(b_(i) ^(κ) ¹ ^(n) ¹ ).

A combined generating function can be expressed as follows

└A ₁(x ₁)^(r) ¹ . . . ,A _(k)(x _(k,1) ,x _(k,k))^(r) ^(Δk) ┘_(n) ₁ _(λ) ₁ _(θ) ₁ _(| . . . |n) ₁ _(λ) _(k) _(θ) ₁ _(, . . . ,n) _(Δk) _(λ) _(k) _(θ) _(Δk)

and can be broken into k independent generating functions as

$\begin{matrix} {\left\lfloor {{{A_{1}\left( x_{1} \right)}^{r_{1}}{\ldots\ldots}}\mspace{14mu},{A_{k}\left( {x_{k,1},x_{k,k}} \right)}^{r_{\Delta\; k}}} \right\rfloor_{{n_{1}\lambda_{k}\theta_{1}},{{\ldots }n_{1}\lambda_{k}\theta_{1}},\ldots\mspace{14mu},{n_{{\Delta\; k}\;}\lambda_{k}\theta_{\Delta\; k}}} = {\left\lfloor {A_{1}\left( x_{1} \right)}^{r_{1}} \right\rfloor_{n_{1}\lambda_{1}\theta_{1}} \cdot {\prod\limits_{i = 2}^{k}\;{\left\lfloor {A_{k}\left( {x_{i,1},\ldots\mspace{14mu},x_{i,i}} \right)}^{{r\;\Delta\; i}\;} \right\rfloor_{{n_{1}\lambda_{i}\theta_{i}},\ldots\mspace{14mu},{n_{{\Delta\; i}\;}\lambda_{i}\theta_{\Delta\; i}}}.}}}} & (80) \end{matrix}$

Given a type θ_(k)n_(k) and a compatible sub-type pair (n₁θ₁, n_(Δ2)θ_(Δ2), . . . , n_(Δk)θ_(Δk)), then

$\begin{matrix} {{\left\lfloor {A_{k}\left( {x_{k,1},\ldots\mspace{14mu},x_{k,k}} \right)}^{r_{\Delta\; k}} \right\rfloor_{{n_{1}\lambda_{k}\theta_{1}},\ldots\;,{n_{\Delta\; k}\lambda_{k}\theta_{\Delta\; k}}} = {\left\lfloor {A_{k}\left( x_{k} \right)}^{r_{\Delta\; k}} \right\rfloor_{n_{k}\lambda_{k}\theta_{k}} \cdot \frac{\prod\limits_{i = 1}^{k}\;\begin{pmatrix} n_{\Delta\; i} \\ {n_{\Delta\; i}\theta_{\Delta\; i}} \end{pmatrix}}{\begin{pmatrix} n_{k} \\ {n_{k}\theta_{k}} \end{pmatrix}}}},} & (81) \end{matrix}$

where A_(k)(z_(k)) is the generating function for one check node in a regular LDPC code with parameter (λ_(k), ρ_(k)), and the coefficient of the term X_(n) ^(n) ^(k) ^(λ) ^(k) ^(θ) ^(k) is taken in the generating function A_(k)(x₂)^(r) ^(Δk) .

Due to the nature of the quantizer δ: GF(q)→

the resulting distribution P_(X) ^(q)(x) is an integer multiple of 1/q for each x∈

. When the capacity-achieving distribution P_(X)* is not an integer multiple of 1/q for some small q (e.g., some P_(X)*(x) are irrational), then a large q may be necessary to make the approximation of P_(X) ^(q) to P_(X)* accurate.

For any DM-PPC (

,P_(Y|X,)

) with capacity-achieving distribution P_(X)*∈

, where

$\begin{matrix} {\mathcal{P}_{\mathcal{X}}\overset{\bigtriangleup}{=}{\left\{ {{\left( {{p_{x}\text{:}x} \in \mathcal{X}} \right) \in {{{\mathbb{R}}^{\mathcal{X}}\text{:}0} \leq p_{x} \leq 1}},{{\sum\limits_{x \in \mathcal{X}}p_{x}} = 1}} \right\}.}} & (82) \end{matrix}$

the set of distributions achievable with the use of a quantizer can be denoted as δ: GF(q)→

by

^(q), where

$\begin{matrix} {{\mathcal{P}_{\mathcal{X}}^{q}\overset{\bigtriangleup}{=}\left\{ {{{\left( {{p_{x}\text{:}x} \in \mathcal{X}} \right) \in {{\mathbb{Q}}^{\mathcal{X}}\text{:}p_{x}}} = \frac{m_{x}}{q}},{{\sum\limits_{x \in \mathcal{X}}\; m_{x}} = q}} \right\}},} & (83) \end{matrix}$

and m_(x)∈[0:q] for all x∈

, then

$\begin{matrix} {{{\max\limits_{P_{X}^{*} \in \mathcal{P}_{\mathcal{X}}}{\min\limits_{P_{X}^{q} \in \mathcal{P}_{\mathcal{X}}^{q}}{I\left( P_{X}^{*} \right)}}} - {I\left( P_{X}^{q} \right)}} = {{O\left( \frac{\log\; q}{q} \right)}.}} & (84) \end{matrix}$

Furthermore, given any DM-PPC (

,P_(Y|X),

) with capacity-achieving distribution P_(X)*∈

and a quantizer δ: GF(q)→

, with

and

^(q) be defined in the same manner as above,

${\mathcal{X}} = {{a\mspace{14mu}{and}\mspace{14mu}\left\lfloor \frac{\mathcal{X}}{2} \right\rfloor} = b}$

can be denoted to obtain

$\begin{matrix} {{\max\limits_{P_{X}^{*} \in \mathcal{P}_{\mathcal{X}}}{\min\limits_{P_{X}^{q} \in \mathcal{P}_{\mathcal{X}}^{q}}{\sum\limits_{x \in \mathcal{X}}\;{{{P_{X}^{*}(x)} - {P_{X}^{q}(x)}}}}}} = {\frac{1}{q}{\frac{2{b\left( {a - b} \right)}}{a}.}}} & (85) \end{matrix}$

When P₁ and P₂ be two distributions on

such that

$\begin{matrix} {{{\sum\limits_{x \in \mathcal{X}}\;{{{P_{1}(x)} - {P_{2}(x)}}}} \leq s \leq \frac{1}{2}},{then}} & (86) \\ {{{{{H\left( P_{1} \right)} - {H\left( P_{2} \right)}}} \leq {s\;\log\;\frac{s}{\mathcal{X}}}},} & (87) \end{matrix}$

where H(P_(X))

−Σ_(x∈)

P_(X)(x) log P(x) is the entropy of P_(X).

Dispersion-Style Analysis

The dispersion-style approach bounds the fundamental limits (both achievability and converse) of the maximum rate in the finite-blocklength regime succinctly using the mutual information I(P_(X)) and the channel dispersion V(P_(X)) defined in (4) and (6).

Notably, the random coding union bound (RCU) bound, can be generalized to analyze random codes with statistically dependent codewords for the PPC and for the 2-transmitter MAC. Application of the generalized RCU bound yields new achievability results for the LDPC codes, matching the optimal codes for the first- and second-order performance in the DM-PPC and identical to the most performant prior results in the DM-MAC. A generalized RCU bound for a k-transmitter MAC can be utilized to obtain an achievability result for the use of RA-LDPC codes in a symmetric DM-k-MAC.

Consider an ensemble of k-transmitter MAC codes with (M_(k))^(k) codewords drawn according to Π_(i=1) ^(k) P_(X) ₁ _((1)X) _(i) _((2) . . . X) _(i) _((M) _(k) ₎ such that

P _(X) _(i) ₍

₎ =P _(X) _(i) ₍

₎ ,∀i∈[k],

,

⊆[(M _(k))^(k)]s.t.|

|=|

|.  (88)

The ensemble-average error probability ϵ_(k) under ML decoding can satisfy

$\begin{matrix} {\left. {\epsilon_{k} \leq {{\mathbb{E}}\left\lbrack {\min\left\{ {1,{\sum\limits_{{\mathcal{S} \in 2^{\lbrack k\rbrack}}:{\mathcal{S} \neq \theta}}\;{\left( {M_{k} - 1} \right)^{\mathcal{S}} \cdot {\Pr\left\lbrack {{{{i\left( {{\overset{\_}{X}}_{\mathcal{S}};{Y_{k}❘X_{\mathcal{S}^{c}}}} \right)} \geq {i\left( {X_{\mathcal{S}};{Y_{k}❘X_{\mathcal{S}^{c}}}} \right)}}❘X_{\lbrack k\rbrack}},Y_{k}} \right\rbrack}}}} \right\}} \right\}}} \right\rbrack,} & (89) \end{matrix}$

where

^(c)=[k]\S, and

$\begin{matrix} {{P_{X_{\lbrack k\rbrack}{\overset{\_}{X}}_{\lbrack k\rbrack}Y_{k}}\left( {a^{k}b^{k}c} \right)} = {{P_{X_{\lbrack k\rbrack}{\overset{\_}{X}}_{\lbrack k\rbrack}}\left( {a^{k}b^{k}} \right)}{P_{Y_{k}❘X^{k}}\left( {c❘a^{k}} \right)}}} & (90) \\ {{P_{X_{\lbrack k\rbrack}{\overset{\_}{X}}_{\lbrack k\rbrack}}\left( {a^{k}b^{k}} \right)} = {\prod\limits_{i = 1}^{k}\;{{P_{{X_{i}{(1)}}{X_{i}{(2)}}}\left( {a_{i}b_{i}} \right)}.}}} & (91) \end{matrix}$

The RCU bound described above assumes that each transmitter has exactly the same number of codewords M_(k). That is, the k-MAC is operating at the symmetrical rate points. The reasoning behind this assumption is to avoid confusions with using M₁, . . . , M_(k) to denote the size of the RAC codebooks at each blocklength n₁, . . . , n_(k).

Given a DM-RAC {(

^(k),P_(Y) _(k) _(|X) _(k) ,

_(k))}_(k=0) ^(K), where a single distribution P_(X)* achieves the capacity for all possible number of active transmitters k∈[K], a selection can be made so that δ: GF(q)→

is a quantization matched to P_(X)*. In this case, there can exist. LDPC parameters (λ_(k), ρ_(k))_(k=1) ^(K) for which the quantized coset-shifted LDPC−{(λ_(i), ρ_(i); n_(i))}_(i=1) ^(K) ensemble contains at least one code with average error bounded by ϵ_(k) and

$\begin{matrix} {{R_{k} \geq {{\frac{1}{k}{I\left( P_{X_{\lbrack k\rbrack}}^{*} \right)}} - {\frac{1}{k}\sqrt{\frac{V\left( P_{X_{\lbrack k\rbrack}}^{*} \right)}{n_{k}}}{Q^{- 1}\left( \epsilon_{k} \right)}} + {\frac{1}{k}\frac{\log\; n_{k}}{2n_{k}}} - \frac{\log\;\alpha_{k}}{n_{k}} - {O\left( \frac{1}{n_{k}} \right)}}},} & (92) \end{matrix}$

for each possible number of active transmitters k∈[K], where I(P_(X) _([k]) *) and V(P_(X) _([k]) *) are the mutual information and channel dispersion defined in (4) and (6) for input distribution P_(X) _([k]) *=(P_(X)*)^(k), α_(k) is defined in (41), and R_(k) is the design rate at blocklength n_(k)

$\begin{matrix} {{R_{k} = {{1 - \frac{\sum\limits_{i = 1}^{K}\;{\frac{n_{i}}{n_{K}}\lambda_{i}}}{\sum\limits_{i = 1}^{K}{\frac{r_{\Delta\; i}}{r_{K}}\rho_{i}}}} = \frac{\log\; M_{k}}{n_{k}}}},} & (93) \end{matrix}$

provided the following moment assumptions are satisfied

I(P _(X) _([k]) *)>0  (94)

V ^(Y)(P _(X) _([k]) *)>0  (95)

T(P _(X) _([k]) *)<∞  (96)

T ^(Y)(P _(X) _([k]) *)<∞.  (97)

Compared to i.i.d. random codes, the additional penalty for the proposed LDPC codes

$- \frac{\log\;\alpha_{k}}{n_{k}}$

behaves as

$O\left( \frac{\log\; n_{k}}{n_{k}} \right)$

under minimum sparsity condition, i.e.,

$K_{i} = \frac{\rho_{i}}{n_{i}}$

decays no more quickly than

$\frac{\log\left( \frac{\log\; n_{i}}{n_{i}} \right)}{n_{i}\log\; b_{i}}$

for all i∈[k]. Accordingly, the proposed LDPC code achieves the same first- and second-order performance as i.i.d. random codes.

Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention can be practiced otherwise than specifically described including using different varieties of LDPC codes, using additional outer codes in combination with an LDPC code such as (but not limited to) a nested LDPC code without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents. 

What is claimed is:
 1. A communication system, comprising: at least one transmitter, where each transmitter comprises an encoder configured to: receive a start of epoch message; encode message data as symbols using a rateless code determined using a nested Low Density Parity Check (LDPC) code by mapping a codeword to a symbol; and receive feedback messages at a predetermined set of potential decoding times; wherein the transmitter is configured to transmit symbols until a received feedback message is an end of epoch message; and a receiver comprising a decoder, where the decoder is configured to: cause a broadcast transmitter to transmit at least one start of epoch message; receive observed symbols; at each of a predetermined set of decode times, determine whether a decoding rule is satisfied; and when the decoding rule is satisfied: decode at least one message based upon the received observed symbols based upon the nested LDPC code; and cause the broadcast transmitter to transmit an end of epoch message.
 2. The communication system of claim 1, wherein: the nested LDPC code is an LDPC code having a full blocklength that corresponds to a longest decode time from the set of predetermined decode times; the nested LDPC code is further characterized in that at least one shorter blocklength of the LDPC code having the full blocklength forms at least one shorter blocklength LDPC code; and each of the at least one shorter blocklength LDPC codes corresponds to a decode time from the set of predetermined decode times that is shorter than the longest decode time from the set of predetermined decode times.
 3. The communication system of claim 2, wherein: the at least one shorter blocklength LDPC code comprises a first shorter blocklength LDPC code and a second shorter blocklength LDPC code; the first shorter blocklength LDPC code comprises a first set of variable nodes, and a first set of check nodes; the second shorter blocklength LDPC code comprises: a second set of variable nodes comprising: the first set of variable nodes and an incremental set of variable nodes; and a second set of check nodes comprising: the first set of check nodes, and an incremental set of check nodes.
 4. The communication system of claim 3, wherein: the first set of check nodes are connected to one or more variable nodes from the first set of variable nodes; and the incremental set of check nodes are connected to one or more variable nodes from the second set of variable nodes.
 5. The communication system of claim 3, wherein the ratio of the first set of variable nodes to the first set of check nodes is different to the ratio of the second set of variable nodes to the second set of check nodes.
 6. The communication system of claim 1, wherein the determination of whether a decoding rule is satisfied is based upon the received observed symbols.
 7. The communication system of claim 1, wherein the at least one transmitter is configured to select a specific nested LDPC code based upon the start of epoch message.
 8. The communication system of claim 1, wherein multiple transmitters in the plurality of transmitters are configured to select the same nested LDPC code to use in the encoding of message data as symbols using a rateless code.
 9. The communication system of claim 1, wherein at least two of the plurality of transmitters are configured to select different nested LDPC codes to use in the encoding of message data as symbols using a rateless code.
 10. The communication system of claim 9, wherein at least two of the different nested LDPC codes have different code rates.
 11. A transmitter system, comprising: a receiver configured to receive a start of epoch message; an encoder configured to: encode message data as symbols using a rateless code determined using a nested Low Density Parity Check (LDPC) code by mapping a codeword to a symbol; and a modulator configured to transmit symbols encoded by the encoder; wherein the receiver is further configured to receive an end of epoch message at one of a predetermined set of times; and wherein the modulator is configured to transmit symbols encoded by the encoder until an end of epoch message is received by the receiver.
 12. The communication system of claim 11, wherein: the nested LDPC code is an LDPC code having a full blocklength that corresponds to a longest decode time from the set of predetermined decode times; the nested LDPC code is further characterized in that at least one shorter blocklength of the LDPC code having the full blocklength forms at least one shorter blocklength LDPC code; and each of the at least one shorter blocklength LDPC code corresponds to a decode time from the set of predetermined decode times that is shorter than the longest decode time from the set of predetermined decode times.
 13. The communication system of claim 12, wherein: the at least one shorter blocklength LDPC code comprises a first shorter blocklength LDPC code and a second shorter blocklength LDPC code; the first shorter blocklength LDPC code comprises a first set of variable nodes, and a first set of check nodes; the second shorter blocklength LDPC code comprises: a second set of variable nodes comprising: the first set of variable nodes and an incremental set of variable nodes; and a second set of check nodes comprising: the first set of check nodes, and an incremental set of check nodes.
 14. The communication system of claim 13, wherein: the first set of check nodes are connected to one or more variable nodes from the first set of variable nodes; and the incremental set of check nodes are connected to one or more variable nodes from the second set of variable nodes.
 15. The communication system of claim 13, wherein the ratio of the first set of variable nodes to the first set of check nodes is different to the ratio of the second set of variable nodes to the second set of check nodes.
 16. A receiver system, comprising: a transmitter configured to transmit at least one start, of epoch message; a receiver configured to receive observed symbols; wherein the decoder is further configured to: determine whether a decoding rule is satisfied at each of a predetermined set of decode times; and when the decoding rule is satisfied: decode at least one message based upon the received observed symbols based upon a rateless code determined using a nested LDPC code; and cause the transmitter to transmit an end of epoch message.
 17. The communication system of claim 16, wherein: the nested LDPC code is an LDPC code having a full blocklength that corresponds to a longest decode time from the set of predetermined decode times; the nested LDPC code is further characterized in that at least one shorter blocklength of the LDPC code having the full blocklength forms at least one shorter blocklength LDPC code; and each of the at least one shorter blocklength LDPC code corresponds to a decode time from the set of predetermined decode times that is shorter than the longest decode time from the set of predetermined decode times.
 18. The communication system of claim 17, wherein: the at least one shorter blocklength LDPC code comprises a first shorter blocklength LDPC code and a second shorter blocklength LDPC code; the first shorter blocklength LDPC code comprises a first set of variable nodes, and a first set of check nodes; the second shorter blocklength LDPC code comprises: a second set of variable nodes comprising: the first set of variable nodes and an incremental set of variable nodes; and a second set of check nodes comprising: the first set of check nodes, and an incremental set of check nodes.
 19. The communication system of claim 18, wherein: the first set of check nodes are connected to one or more variable nodes from the first set of variable nodes; and the incremental set of check nodes are connected to one or more variable nodes from the second set of variable nodes.
 20. The communication system of claim 18, wherein the ratio of the first set of variable nodes to the first set of check nodes is different to the ratio of the second set of variable nodes to the second set of check nodes.
 21. The communication system of claim 16, wherein the decoder is selected from the group consisting of a maximum likelihood decoder and a belief propagation decoder. 